буду получать то же имя пользователя
const userName = useSelector(getUserName);
Это нормальный подход?
вполне. они становятся явно зависимыми от этого куска стейта
Спасибо) я немного утрировал для примера, в целом суть понял
просто если у вас контекст с кучей подписок, то при изменении одной из них будет ререндер всего дерева начиная с провайдера (вроде как, я это не проверял)
Проясните немного 1 момент, мы же не можем на контекст явно подписаться (someContext.subscribe()) ? Подписка происходит, когда мы оборачиваем компонент в Consumer или используем контекст к компоненте через хуки?
provider позволяет ниже по дереву достать value через consumer
нет понятия "подписка" в контексте контекста (so much recursion), вы просто получаете value из consumer
С этим согласен, возможно не так вопрос поставил. Если мы юзаем в компоненте const { prop } = useContext(someContext); При изменении prop текущий компонент перерисовывается, верно?
если проп это стейт внутри провайдера и вы делаете сетПроп то будет ререндер провайдера и его children
А если prop из redux?
вы же провайдер на стейт редакса подписываете, а не children, тоже ререндер по идее будет, я просто такое делать не пробовал, может я чего-то не знаю.
Понял, спасибо)
в девтулзах в профайлере можно посмотреть есть ререндеры или нету
Ним ещё не пользовался, но знаю, очень полезный инструмент) надо как то разобраться
лучше не откладывать на потом, этот инструмент позволяет найти проблемные места в приложении с точки зрения производительности
Обсуждают сегодня