• Контролируемые и неконтролируемые компоненты в React не должны быть сложными

    Привет, Хабр! Представляю вашему вниманию перевод статьи «Controlled and uncontrolled form inputs in React don't have to be complicated» автора Gosha Arinich.

    Возможно, вы видели много статей, говорящих: “вы не должны использовать “setState”", в то время, когда документы утверждают, что “refs — это плохо”. Всё это очень противоречиво. Иногда, трудно понять, как сделать все правильно, а так же каковы критерии выбора между этими методами.

    Так как же делать делать формы? В конце концов, формы занимают центральное место во многих веб-приложениях. И все же, обработка формы в React является краеугольным камнем, не так ли?

    Однако все не так сложно. Позвольте мне показать вам различия между этими подходами, а также то, когда вы должны использовать каждый из них.

    Неуправляемые компоненты


    Неуправляемые компоненты похожи на обычные HTML-формы:

    class Form extends Component {
      render() {
        return (
          <div>
            <input type="text" />
          </div>
        );
      }
    }
    

    Они запоминают всё, что вы печатали. Затем вы можете получить их значение, используя ref. Например, в обработчике onClick:

    
    class Form extends Component {
      handleSubmitClick = () => {
        const name = this._name.value;
        // do something with `name`
      }
      render() {
        return (
          <div>
            <input type="text" ref={input => this._name = input} />
            <button onClick={this.handleSubmitClick}>Sign up</button>
          </div>
        );
      }
    }
    

    Другими словами, вам необходимо «вытащить» значения из поля, когда вам это нужно. Это можно сделать при отправке формы.

    Это самый простой способ реализации форм. Конечно, должны быть веские основания для его использования, а именно: самые простейшие формы либо во время изучения React.
    Однако этот способ не такой гибкий, поэтому давайте лучше посмотрим на управляемые компоненты.

    Управляемые компоненты:


    Управляемый компонент принимает свое текущее значение в качестве пропсов, а также коллбэк для изменения этого значения. Вы можете сказать, что это более “реактивный” способ управления компонентом, однако это не означает, что вы всегда должны использовать этот метод.
    Читать дальше →
  • Букварь по дизайну систем (Часть 1 с дополнениями по микросервисам)

    • Translation


    Несколько лет назад, для закрытия одного их предметов мне довелось перевести данный букварь. Де-факто этот вариант стал официальным переводом. Но развитию этого перевода мешает, тот факт, что он был написан в Google Drive и закрыт на редактирования. Сегодня я уделил время на переформатирования всего этого текста в MD формат с помощью редактора Хабра, с радостью публикую здесь и вскоре отдам текущим контрибьюторам.


    Словарь


    Node — нода — узел с каким либо ресурсом
    Content — контент — данныe
    Traffic — трафик — запрос/ответ, данные которые передаются от сервера клиенту и наоборот
    Hardware — железо — аппаратная часть
    Instance — инстанс — созданный объект какой либо сущности. Например инстанс сервера API
    Headers — хедеры — заголовки (как правило TCP пакета, но может быть и HTTP запроса)



    Читать дальше →
    • +29
    • 14.6k
    • 3
  • Как стать DevOps инженером за полгода или даже быстрее. Часть 4. Пакетирование программ

    • Translation
    Как стать DevOps инженером за полгода или даже быстрее. Часть 1. Введение
    Как стать DevOps инженером за полгода или даже быстрее. Часть 2. Конфигурирование
    Как стать DevOps инженером за полгода или даже быстрее. Часть 3. Версии



    Рассмотрим, как упаковать ваш код для легкого развертывания и последующего выполнения. Напомню, что сейчас мы находимся здесь:

    Читать дальше →