Я пытаюсь воссоздать шаблон с помощью React Router. Лучше всего это описать на примере Twitter: когда вы нажимаете кнопку Tweet, браузер переходит на /compose/tweet
, монтируя компонент composer. Однако, и это ключ , предыдущий маршрут (/home
, /explore
, /notifications
, /messages
) остается подключенным, несмотря на изменение маршрута. Как вы это сделаете?
Это можно назвать двумерной маршрутизацией: маршрут /compose/tweet
поддерживается ортогональным по отношению к другим маршрутам, которые отображают основной вид. Другие маршруты скрываются (т. Е. Больше не находятся в адресной строке) при переходе к /compose/tweet
, в результате чего сразу отображаются два независимых маршрута (скажем, /notifications
и /compose/tweet
).
Мой фактический пример: мне нужно показать меню пользовательских настроек (/user/menu
) в виде большой боковой панели, но я не хочу, чтобы это изменило, перемещался ли пользователь по /
(домашняя страница), /faq
, /contact
и т. д. c. Исходя из моего текущего понимания React Router, как только вы нажмете /user/menu
, любой другой маршрут (например, /faq
) будет размонтирован на основе соответствия маршрута.
Кэширование предыдущего маршрута (например, Redux, который я уже широко использую), кажется неосуществимым, поскольку, даже если я смогу перенаправить пользователя на предыдущий маршрут после выхода из /user/menu
, React все равно будет размонтировать компоненты, фактически показывая домашнюю страницу в фоновом режиме до тех пор, пока пользователь не выйдет /user/menu
и не будет перенаправлен туда, где он находился, что не является предполагаемым поведением. Я бы хотел, чтобы остальная часть страницы оставалась там с визуализированными компонентами, как это делает Твиттер.
Я что-то пропускаю? Это простой шаблон, и я что-то упускаю?
Примечание: это приложение SSR isomorphi c, но я думаю / надеюсь, что это ничего не изменит.