Size: a a a

React — русскоговорящее сообщество

2020 July 10

М

Мерч in React — русскоговорящее сообщество
Александр Бакиматов
ну это вон выше в треде обсуждалось, с этим понятно все. но это не делает контекст НЕ современным инструментом. они просто о разном
йеп, тут согласен
источник

D

Dmitry in React — русскоговорящее сообщество
Мерч
Хз, я тоже так считал пока не наткнулся на интересную статью на хабре
Если кратко, для мелких проектов или своих личных штук юзать контекст можно
Но если это большая команда или это коммерция, то будет затрачено больше ресурсов
Как никак что у редакса что у мобикса целые документации и смежные библиотеки, те же санки например, что экономят кучу времени
Ещё посмотри выше
Для по мера возьмём редакс и его редакс обсервабл
Код без затрат можно переписать на контексты

И магия. Все будет работать. И что ты тут потратил ? Как я говорил проблема не в этом от слова совсем. И да я могу об этом говорить. И не по какой то там статье на хабре
источник

NT

Nikolay Tolochnyy in React — русскоговорящее сообщество
Yan Nikolaev
const stableQueryRequest = useCallback(
   query => sendESRequest(dispatch, {filters: filtersState, showDeleted, query, features}),
   [dispatch, filtersState, showDeleted, features],
 );

useEffect(() => {
   let timeOutId = null;
   if (query !== null) {
     console.log('request1');
     timeOutId = setTimeout(() => {
       stableQueryRequest(query);
     }, 500);
   }
   return () => clearTimeout(timeOutId);
 }, [query]);
на всякий пожарный, [dispatch, filtersState, showDeleted, features] ты ж учитываешь то, что если там не plain или не мемоизированные переменные, то это всегда будет отрабатывать?
источник

М

Мерч in React — русскоговорящее сообщество
Dmitry
Ещё посмотри выше
Для по мера возьмём редакс и его редакс обсервабл
Код без затрат можно переписать на контексты

И магия. Все будет работать. И что ты тут потратил ? Как я говорил проблема не в этом от слова совсем. И да я могу об этом говорить. И не по какой то там статье на хабре
Как минимум потратил время на переписывание и объяснение новым сотрудникам как с этим работать в будущем
источник

D

Dmitry in React — русскоговорящее сообщество
Мерч
Как минимум потратил время на переписывание и объяснение новым сотрудникам как с этим работать в будущем
Нет. Если ты с нуля начал.
А если они знают rx - проблем нету
источник

И

Иван in React — русскоговорящее сообщество
Dmitry
Так вот от контекста только и требуется прокинуть стейт
В общем все
Логику где хочешь пиши

И да. Не забываем что обособленные контексты не связны никак и не аффектят все дерево
прокинуть стейт и перерендерить всё дерево под провайдером
источник

И

Иван in React — русскоговорящее сообщество
Dmitry
Так вот от контекста только и требуется прокинуть стейт
В общем все
Логику где хочешь пиши

И да. Не забываем что обособленные контексты не связны никак и не аффектят все дерево
источник

O

Olég in React — русскоговорящее сообщество
Иван
прокинуть стейт и перерендерить всё дерево под провайдером
там еще 50 штук провайдеров и консамеров, разберутся
источник

D

Dmitry in React — русскоговорящее сообщество
Ну вот это как раз один из минусов
По этому да
За контекст я не топлю. Но мнение что это говно - это такое.
источник

NT

Nikolay Tolochnyy in React — русскоговорящее сообщество
то есть всё что под провайдером нужно обернуть ещё и в react.memo?
источник

D

Dmitry in React — русскоговорящее сообщество
Nikolay Tolochnyy
то есть всё что под провайдером нужно обернуть ещё и в react.memo?
Нет
Провайдер вниз по дереву не тригерит апдейт
Только подписчикам
источник

NT

Nikolay Tolochnyy in React — русскоговорящее сообщество
тригерит же. попробуй жмякнуть на кнопку
источник

NT

Nikolay Tolochnyy in React — русскоговорящее сообщество
Foo не консюмер, а rerender происходит
источник

D

Dmitry in React — русскоговорящее сообщество
там оба компонента полписаны
источник

D

Dmitry in React — русскоговорящее сообщество
Nikolay Tolochnyy
Foo не консюмер, а rerender происходит
там стейт над всем
конечно апдейт всех
не такой пример
источник

NT

Nikolay Tolochnyy in React — русскоговорящее сообщество
да, ты прав
источник

D

Dmitry in React — русскоговорящее сообщество
а вот так
источник

И

Иван in React — русскоговорящее сообщество
Dmitry
а вот так
источник

И

Иван in React — русскоговорящее сообщество
Dmitry
там стейт над всем
конечно апдейт всех
не такой пример
а как ты изменишь значение в контексте без изменения стейта или без форсированного рендера провайдера?
источник

D

Dmitry in React — русскоговорящее сообщество
Иван
а как ты изменишь значение в контексте без изменения стейта или без форсированного рендера провайдера?
так вот в примере я сделал провайдер
и в нем стейт
он не аффектит ниже
источник