Как использовать сокращение на многостраничном веб-сайте?

Я знаю, как использовать редукцию и реагировать на маршрутизатор для SPA. Подумайте, как использовать сокращение в более традиционных многостраничных веб-приложениях с инфраструктурой на стороне сервера, например spring MVC, jsp и т.д.

Может ли несколько страниц использовать один и тот же магазин? Из документации для рендеринга на стороне сервера каждый сервер страниц отправляет новый магазин.

Ответ 1

Если вы используете рендеринг на стороне сервера (SSR), тогда клиент будет создан новый магазин для каждого рендеринга. Хранилище создается с помощью initialState, поэтому можно сохранять состояние между маршрутами с использованием локального/сеансового хранилища или отображаться в head страницы и использоваться во время создания хранилища для поддержания состояния между различными приложениями.

Ответ 2

Рад слышать, что вы сопротивлялись сиреневой песне большого SPA для ВСЕГО, что кто-то следит за этими днями.

Поскольку у вас много страниц, каждая страница рассматривается как одно независимое приложение React, поэтому каждому нужно 1 Redux store. Однако на многих страницах вашего приложения может быть достаточно только jQuery или pure React. Поэтому мой ответ прост: используйте Redux на страницах с сложным управлением состоянием, богатым пользовательским взаимодействием и высоким спросом на поддерживаемость кода.

В магазине Redux вам не нужен общий магазин на разных страницах, поскольку у вас уже есть очень старый, который долгое время управляет Интернетом: сеанс сервера. Просто добавьте это общее значение в windows.__INITIAL_STATE__ каждый раз, когда страницы отображаются. cookie, local storage,... являются некоторыми альтернативами, но я не думаю, что они действительно необходимы.