Состояние и реквизиты:

Эти 2 делают React динамичным. Состояние, существующее внутри компонента, и Свойства, которые мы передаем между компонентами.

Создание начального состояния и использование компонента внутри класса:

Создайте файл Vendor.js с начальным состоянием, содержащим данные, связанные с поставщиками:

Затем вызов этого компонента поставщика внутри корня (App.js):

Как изменить состояние компонента?

В идеале, если мы придерживаемся стандарта Javascript, мы можем просто получить доступ к свойству, которое мы хотим изменить, а затем обновить:

this.state.vendorsData[0].name = «Ришаб»

Но это совершенно неправильный метод и не разрешенный React. Мы получим предупреждение в консоли типа "Не изменяйте состояние напрямую и используйте setState()".

Итак, React, чтобы определить, что что-то изменилось, нам нужно изменить состояние с помощью метода setState (предоставляется внутри компонента класса). setState – это асинхронный метод, поэтому изменения сразу же отражаются.

Теперь посмотрим на setState() в действии. Создайте функцию, которая изменит доступный баланс в соответствии с новым состоянием, и добавьте для этого кнопку щелчка.

До и после нажатия:

Теперь с мутациями состояния с помощью setState появляется одна из лучших вещей в React — Virtual DOM.

Виртуальный DOM достаточно умен, чтобы проверять, что добавляется/удаляется/изменяется, поэтому ему не нужно снова отображать полный DOM.

Как мы знаем, обновление DOM является наиболее сложной и трудоемкой задачей в пользовательском интерфейсе, но с React Virtual Dom это становится очень эффективным. React сравнивает начальное состояние и новое состояние, отображает измененные элементы, только не одинаковые. Это повышает производительность при работе с React. Таким образом, в приведенном выше примере он будет повторно отображать только оставшийся баланс вместо всех трех полей.

Подправлено состояние обновления некоторым динамическим способом (вычитая 10 при каждом клике):

Теперь есть один интересный случай. Мы взяли новое поле состояния pageNumber и изменили его с установленным состоянием 4 раза с другим значением:

Теперь, когда мы отображаем номер страницы по клику, что должно быть на выходе??

На самом деле то, что он делает внутри, это object.assign({}, {pageNumber: 5}, {pageNumber: 2}, {pageNumber: 3})

Это приводит к {pageNumber: 3}

Props: свойства/данные, передаваемые между различными компонентами. Это может содержать функции, объекты (+массив), строки, логические значения. (Мы видели в прошлом уроке — —)

Обработка событий в React:

Мы обсудим обработку событий двумя способами:

  1. Использование анонимной функции
  2. Использование привязки

Использование анонимной функции:вызов исходной функции путем создания анонимной функции.

Использование Bind: привязка исходной функции ( Bind возвращает новую функцию путем привязки переданных данных/объекта)

Двусторонняя привязка в React: (Модель к представлению и Представление к модели)

Здесь мы будем использовать свойство ввода html с типом текста. Мы будем вызывать функцию Onchange при обновлении значения, а внутри функции onChange мы получим доступ к значению (используя целевое значение события) и изменим состояние в соответствии с этим значением.

В случае каких-либо вопросов и предложений, пожалуйста, свяжитесь со мной https://www.linkedin.com/in/rishabh-jain-a5978583/ или напишите письмо @[email protected]