В серверных компонентах вы лишь получаете/обрабатываете/кешируете сырые данные, которые потом передаются в клиентские компоненты(клиентские компоненты также рендерятся на сервере с помощью SSR). Мы используем и глобальные сторы(например AppStore/UserStore) и локальные сторы одновременно. Внутри клиентских компонентов вы уже инициализируете и заполняете обсерваблы, или закидываете данные в глобальный стор(они у нас наполняются из layout.tsx).
Для локального стора, выглядит примерно так:
export const Client = observer(({ catalogProduct }: PropsType) => {
const store = useObservable({
tab: 'description',
catalogProduct: new CatalogProductModel(catalogProduct)
});
MobX прекрасно работает с SSR Nextjs 12/13. У нас есть несколько проектов с Nextjs 12 + MobX в продакшене, и в данный момент почти ушел в продакшен проект на Nextjs 13 + MobX с использованием директории app
клиентские компоненты также рендерятся на сервере, разница в том, что серверные компоненты не попадают в js bundle.
https://nextjs.org/docs/getting-started/react-essentials#client-components
Client Components enable you to add client-side interactivity to your application. In Next.js, they are pre-rendered on the server
Ничем,
Head
работает только сpages
архитектурой, сapp
не работает.В этом: "The
metadata
object andgenerateMetadata
function exports are only supported in Server Components"https://nextjs.org/docs/app/api-reference/functions/generate-metadata
Генерировать SEO, в клиентских компонентах нельзя задать SEO.
Ну и мы еще кешируем результаты некоторых запросов в Redis.
В серверных компонентах вы лишь получаете/обрабатываете/кешируете сырые данные, которые потом передаются в клиентские компоненты(клиентские компоненты также рендерятся на сервере с помощью SSR).
Мы используем и глобальные сторы(например AppStore/UserStore) и локальные сторы одновременно.
Внутри клиентских компонентов вы уже инициализируете и заполняете обсерваблы, или закидываете данные в глобальный стор(они у нас наполняются из layout.tsx).
Для локального стора, выглядит примерно так:
MobX прекрасно работает с SSR Nextjs 12/13.
У нас есть несколько проектов с Nextjs 12 + MobX в продакшене, и в данный момент почти ушел в продакшен проект на Nextjs 13 + MobX с использованием директории app