Size: a a a

2019 July 01

V

Vlad in React Kyiv
да, пробую context + хуки вместо редакса. думал уже вынести отдельно массив в стэйт и отдельно методы и прокидывать только методы, всё равно ре-рендерит
источник

SG

Stas G in React Kyiv
ты еще убедись, что тебе нужно все эти данные держать в 1 контексте
источник

SG

Stas G in React Kyiv
может есть возможность разделить на несколько
источник

V

Vlad in React Kyiv
да у меня там всего 1 массив и методы для работы с ним, которые глубоко вызываются. почитаю статейки выше, может там какая идея будет. ну и редьюсер гляну, который посоветовали
источник

SG

Stas G in React Kyiv
Eugene M
если у тебя хуки, используй useReducer вместо useState
а чем поможет useReducer?
источник

EM

Eugene M in React Kyiv
тем что там будет ссылка на ту же функцию
источник

EM

Eugene M in React Kyiv
не стоит разносить по контекстам
источник

EM

Eugene M in React Kyiv
есть номральное решение в оф доке
источник

EM

Eugene M in React Kyiv
прочитай статью
источник

SG

Stas G in React Kyiv
на какую функцию?
источник

EM

Eugene M in React Kyiv
вопрос же про обновление компоненто в которых только методы
источник

AR

Alexey Raspopov in React Kyiv
useState это частный случай useReducer
источник

SG

Stas G in React Kyiv
там функции скорее всего не меняются, а перерендер из-за данных
источник

SG

Stas G in React Kyiv
Лёша должен что-то толковое посоветовать)
источник

AR

Alexey Raspopov in React Kyiv
Не передавать через один контекст больше одного куска данных
источник

AR

Alexey Raspopov in React Kyiv
Я обычно делаю такой отдельный модуль и полностью прячу понятие контекста и логики
источник

AR

Alexey Raspopov in React Kyiv
Такой паттерн можно расширить и передавать dispatch через отдельный контекст, который никогда не будет менять свое значение. Для него можно написать отдельный хук useThingDispatch
источник

AR

Alexey Raspopov in React Kyiv
(конечно было бы проще, если бы observedBits был доступен, но пока его нет)
источник

V

Vlad in React Kyiv
в этой статье 1 в 1 пример с ре-рендером и пару методов решения 🙂
источник

EM

Eugene M in React Kyiv
dispatch по идее не меняется поэтому в тех местах кто подписка только на него все ок
источник