Обложка канала

Заметки про React

Короткие и полезные заметки про React

Заметки про React

4 года назад
Открыть в
Переименование экспериментального useEvent в useEffectEvent В репозитории React смержили ПР, в котором переименовали useEvent в useEffectEvent. Ранее в устаревшем RFC про useEvent показывали пример использования хука: в эффектах и для оптимизации рендера. Теперь хук будет использоваться только в эффектах. По сообщению Дэна Абрамова оптимизация рендеринга будет прорабатываться отдельно. Пример использования хука:
const onHappened = useEffectEvent(() => ...);
useEffect(() => {
  onHappened();
}, []);
https://github.com/facebook/react/pull/25881
Заметки про React

RFC useEvent В React RFC появилось новое предложение от Дэна Абрамова – добавить хук useEvent. Этот хук будет предназначен для использования в обработчиках событий. function Chat() { const [text, setText] = useState(''); const onClick = useEvent(() => { sendMessage(text); }); return ; } Код внутри useEvent будет иметь доступ к актуальным значениям пропсов/стейтов в момент вызова. Возвращаемая функция будет иметь одинаковую ссылку, даже если пропсы/стейты, на которые она ссылается, изменились. Также в useEvent не будет массива зависимостей. При использовании useEffect можно будет исключить из списка зависимостей функции, объявленные через useEvent. Таким образом, эффекты не будут перезапускаться при изменении ссылки на обработчики событий. function Page({ route, currentUser }) { // ✅ Stable identity const onVisit = useEvent(visitedUrl => { logAnalytics('visit_page', visitedUrl, currentUser.name); }); useEffect(() => { onVisit(route.url); …

Telegram