SPA - Когда использовать Location Based или Internal State? - PullRequest
0 голосов
/ 10 ноября 2018

Надеюсь, это не слишком самоуверенно, но мне интересно, есть ли лучшие практики в отношении SPA на основе местоположения и SPA на основе внутреннего.

Internal based SPAs -  track state internally
Location-based SPAs - URL location / Sessions , etc

В одной части моего сайта, если пользователь вставит URL-адрес, будут показаны результаты поиска.

Однако, если я должен делать это для таких областей, как раздел администратора.

Например, я разрешаю пользователям добавлять инвентарь к этой точке

admin -> добавить новый инвентарь -> выбрать центр -> выбрать подкатегорию -> добавить инвентарь.

Это в значительной степени поток, однако, если бы я определил его местоположение на основании «страницы инвентаря», мне пришлось бы установить

  • компания
  • центр
  • подкатегория

Что потребует ajax-запросов для получения всех данных и, в основном, каждой страницы, которую я должен был бы выполнить, настраивая данные. Кажется, что это большая работа, когда каждая страница должна быть полностью настроена, если она идет с URL.

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

Так, может быть, в некоторых ситуациях было бы лучше как-то просто перенаправить пользователей обратно в корень всего?

1 Ответ

0 голосов
/ 10 ноября 2018

Я бы рекомендовал использовать React Context для решения вашей проблемы.

После авторизации вы можете установить значение Provider для пользователя или его разрешений, затем на каждом ComponentDidMount или render() или любом другом хуке жизненного цикла, который вы выберете, вы можете проверить разрешения пользователей и затем разрешить их функциональные возможности. на основании этого.

Значения контекста сохраняются на протяжении всей маршрутизации, поэтому вам не придется постоянно беспокоиться об его обновлении (хотя вам, вероятно, следует это делать, если у вашего пользователя есть сеанс по времени).

Таким образом, вполне возможно и, возможно, более эффективно использовать сочетание как внутреннего, так и основанного на местоположении управления состоянием.

...