Знакомая ситуация: в контексте лежат два поля, скажем, name и age. Меняется age, и ререндерится компонент, который читает только name. У useContext нет селектора, как у useSelector в Redux: React сравнивает value провайдера целиком, а при каждом изменении это новый объект. Ни useMemo, ни React.memo…
React Context без лишних ререндеров: подписка на отдельные поля
Это краткое изложение. Полный текст материала доступен на сайте источника.