для чего делается вот такая обертка с конекстом вокруг всех страниц?
https://github.com/vercel/next.js/blob/canary/examples/with-zustand/lib/zustandProvider.js
https://github.com/vercel/next.js/blob/canary/examples/with-zustand/pages/_app.js
чтобы стор был доступен во всех дочерних компонентах
Потому что Zustand это стейт-менеджер, наподобие redux. Поэтому контекст используется для общего стора во всём приложении
Вчера задавал вопрос по поводу Zustan стейт менеджера, мне ответили, что провайдер нужен, чтобы каждый компонент мог получить доступ к стору. Но сейчас методом пробы я выяснил, что никакой провайдер для корректной работы не нужен, стейт менеджер работает и без него. Это написано и в их документации. Потому вопрос снова актуален. Буду очень благодарен, если кто-то поможет разобраться.
Я быстренько пробежался по документации и не увидел поддержки SSR. Полагаю, в контекст обернули, чтобы расшарить state для SSR.
Проблема в чем (если я не ошибаюсь)? Когда ты запускаешь nodejs-сервер и выполняешь на нем рендеринг, то любые изменения с твоим стором будут записаны в памяти. И когда следующий человек сделает запрос, то он эти изменения тоже получит (хотя должен был получить неизмененный вариант). А контекст решает эту проблему, поскольку он неизменяем (если не ошибаюсь) и возвращает каждый раз чистое состояние для каждого запроса.
Спасибо большое, буду разбираться
почитай вот issue, может станет понятней что-нибудь https://github.com/pmndrs/zustand/issues/182
Обсуждают сегодня