Forwarded from Cat in Web
Валидация форм с react-hook-form в React-приложениях
Видео (рус.): https://youtu.be/Jxfun6Jnt5Q
Быстрое и понятное введение в работу с библиотекой react-hook-form. Достаточно подробно описано, как настроить валидацию для формы с неконтролируемыми полями.
#видео #react #forms
Видео (рус.): https://youtu.be/Jxfun6Jnt5Q
Быстрое и понятное введение в работу с библиотекой react-hook-form. Достаточно подробно описано, как настроить валидацию для формы с неконтролируемыми полями.
#видео #react #forms
YouTube
Валидация форм с react-hook-form в React-приложениях
Библиотека react-hook-form упрощает создание и обработку форм в React-приложениях. Быстро, просто и эффективно.
00:00 Актуальность библиотеки форм
01:09 Создание проекта
01:41 Хук useForm
03:09 Обработчик отправки формы
04:06 Обязательное поле ввода
06:09…
00:00 Актуальность библиотеки форм
01:09 Создание проекта
01:41 Хук useForm
03:09 Обработчик отправки формы
04:06 Обязательное поле ввода
06:09…
👍3
React 19 будет компилируемым
Статья (англ.): https://reacttraining.com/blog/react-19-will-be-compiled
В феврале разработчики React рассказали, что работают над компилятором (React Compiler), который добавит в React автоматическую мемоизацию и сделает жизнь разработчиков проще (пост тут).
А в статье автор разбирается, что же это значит и насколько это нововведение изменит разработку.
Зачем мы мемоизируем
Одним из важных отличий классовых компонентов от функциональных было то, что рендер был вынесен в отдельный метод класса. Там был только код рендера и больше ничего. Когда ваш компонент перерендеривался, он не дергал никакого лишнего кода, как это происходит сейчас с функциональными компонентами.
При каждом рендере у нас создаются новые функции, новые объекты, которые не равны тем, что были в предыдущем рендере, а значит, могут ненароком вызвать лишние рендеры дочерних компонентов. Чтобы избежать этого, мы используем всякие useCallback'и и useMemo - занимаемся ручной мемоизацией.
В статье приводится простой пример этого процесса.
Компилятор вроде как должен избавить нас от этой мороки, будем надеяться, что эта задумка будет удачной.
Чуть более компилируемый
Затем автор рассуждает немного о "компилируемости" React. Он приходит к заключению, что нет двух отдельных положений - либо компилируется, либо не компилируется. Компилируемость - это шкала, на которой одни инструменты (Svelte) более компилируемы, а другие менее.
Идея в том, что появление нового компилятора не должно нас пугать.
#ссылки
Статья (англ.): https://reacttraining.com/blog/react-19-will-be-compiled
В феврале разработчики React рассказали, что работают над компилятором (React Compiler), который добавит в React автоматическую мемоизацию и сделает жизнь разработчиков проще (пост тут).
А в статье автор разбирается, что же это значит и насколько это нововведение изменит разработку.
Зачем мы мемоизируем
Одним из важных отличий классовых компонентов от функциональных было то, что рендер был вынесен в отдельный метод класса. Там был только код рендера и больше ничего. Когда ваш компонент перерендеривался, он не дергал никакого лишнего кода, как это происходит сейчас с функциональными компонентами.
При каждом рендере у нас создаются новые функции, новые объекты, которые не равны тем, что были в предыдущем рендере, а значит, могут ненароком вызвать лишние рендеры дочерних компонентов. Чтобы избежать этого, мы используем всякие useCallback'и и useMemo - занимаемся ручной мемоизацией.
В статье приводится простой пример этого процесса.
Компилятор вроде как должен избавить нас от этой мороки, будем надеяться, что эта задумка будет удачной.
Чуть более компилируемый
Затем автор рассуждает немного о "компилируемости" React. Он приходит к заключению, что нет двух отдельных положений - либо компилируется, либо не компилируется. Компилируемость - это шкала, на которой одни инструменты (Svelte) более компилируемы, а другие менее.
Идея в том, что появление нового компилятора не должно нас пугать.
#ссылки
ReactTraining.com
React Will Be Compiled
React Corporate Workshops, Training, and Consulting
👍4
Схема обновления дерева компонентов:
https://youtu.be/kNypR7QKixE?si=AZcFKvHjLSO_L3y5
#react #fiber #подкапотом
https://youtu.be/kNypR7QKixE?si=AZcFKvHjLSO_L3y5
#react #fiber #подкапотом
YouTube
Fiber tree update
👍4👏1
Коммит изменений
После того как в фазе рендера (реконсиляции) определены все изменения, нужно внести их в реальный DOM - наступает фаза коммита изменений.
На данный момент мы имеем полностью построенное workInProgress-дерево: для каждого Fiber-узла в нем создан соответствующий DOM-элемент и проставлены все необходимые флаги.
Тут работает функция commitMutationEffects(root, finishedWork, lanes), где finishedWork - это корень (HostRoot) нового дерева.
Под капотом там довольно много всего, но основная идея - пошаговое внесение изменений:
⁃ сначала удаляется то, что нужно удалить
⁃ потом вставляется то, что нужно вставить
Возможно, позже вернусь к этому.
https://jser.dev/2023-07-14-initial-mount/#how-react-does-initial-mount-first-time-render- тут в конце статьи есть прекрасная презентация, визуально показывающая последовательность действий при первом рендеринге
#react #подкапотом #fiber
После того как в фазе рендера (реконсиляции) определены все изменения, нужно внести их в реальный DOM - наступает фаза коммита изменений.
На данный момент мы имеем полностью построенное workInProgress-дерево: для каждого Fiber-узла в нем создан соответствующий DOM-элемент и проставлены все необходимые флаги.
Тут работает функция commitMutationEffects(root, finishedWork, lanes), где finishedWork - это корень (HostRoot) нового дерева.
Под капотом там довольно много всего, но основная идея - пошаговое внесение изменений:
⁃ сначала удаляется то, что нужно удалить
⁃ потом вставляется то, что нужно вставить
Возможно, позже вернусь к этому.
https://jser.dev/2023-07-14-initial-mount/#how-react-does-initial-mount-first-time-render- тут в конце статьи есть прекрасная презентация, визуально показывающая последовательность действий при первом рендеринге
#react #подкапотом #fiber
jser.dev
How does React do the initial mount internally?
Initial mount is the first render for a React app, it creates the internal Fiber Tree and also the DOM tree.
👍4