Как использовать сокращение на многостраничном веб-сайте?
Я знаю, как использовать редукцию и реагировать на маршрутизатор для 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
,... являются некоторыми альтернативами, но я не думаю, что они действительно необходимы.