есть компонент, на котором ииспользуется стейт 1.
В фоне у меня раз в 5 сек обновляется и записывается стейт 2, который не используется на компоненте
будет ли ререндериться компонент?
Это зависит от того, как вы линкуете свой компонент со стором и смотря какие данные тянете со стора Если данные примитивные - то ререндер происходить не должен Если данные не примитивные, то надо использовать что-то на подобии реселекта А вообще redux toolkit в помощь И дока по re-select
если компонент который юзает стейт 1 не является дочерним компонентом стейта 2, то не должен. А если так то ты можешь использовать useMemo
да, но в общем случае store.dispatch вызвает ререндер всей приложухи?
очень-очень плохо, а какие есть варианты оптимизации, помимо завертывания всего и вся в useMemo?
что не хочешь рендерить - оборачиваешь в React.memo и все пропсы также должны быть мемоизированы
про то, как кидать в React.memo знаю, а как пропсы мемоизировавть?
а, понял о чем вы) вечер обещает быть томным
const memoizedProp = useMemo(() => prop, [...deps]);
Не надо ничего завертывать в useMemo Точнее не так, иногда надо - но это признак того, что в приложении что то не так. Я уже написал - почитайте про реселект Любое видео в ютубе и вы поймёте как сделать так, чтобы компоненты, которые были прилинкованы к стору не ререндерились постоянно Есть много подходов помимо реселекта, но все идут от него
Обсуждают сегодня