по поводу оптимизации — в реакте также добавлен HOC React.memo, с ним можно избежать лишнего перерендера — компоненты, не использующие useContext, не обновятся.
О доступе — контекст провайдер можно объявить в корне приложения — тогда чилдренами у него будут все (про проблему с оптимизацией уже сказал как можно решить с: )
Мне кажется, использование контекста с редьюсером — неплохая идея, если нужно реализовать какую-то логику, изолированную от общего приложения, например работу с формой.
Автору статьи спасибо, советую дополнить свой код обертками useCallback и вынесением экшенов в кастомные хуки:
О доступе — контекст провайдер можно объявить в корне приложения — тогда чилдренами у него будут все (про проблему с оптимизацией уже сказал как можно решить с: )
Мне кажется, использование контекста с редьюсером — неплохая идея, если нужно реализовать какую-то логику, изолированную от общего приложения, например работу с формой.
Автору статьи спасибо, советую дополнить свой код обертками useCallback и вынесением экшенов в кастомные хуки: