Правильный ли подход хранить в store полученные данные?
Например перешел на страничку user/${id} засунул в state.userData по id всю информацию.
При следующем переходе получил данные из этого state без запросов к серверу.
Пока приложение частично так построено, но есть необходимость как то обновлять данные
Пока есть 2 идеи
1. Передавать по socket если какой то state был обновлен.
Как только пользователь вновь переходит на страницу user/${id} флаг стоит данные перетягиваются
2. Просто тянуть по новой каждый раз данные при переходе между страничками
Что из этого больше подойдет, как еще можно реализовать, какие пакеты существуют для облегчения этого дела?
Представьте, что у вас банковская система. У которой десятки и сотни сущностей. Их все держать в store приложения? Сомневаюсь. Мы там держим только объекты отвечающие за навигацию по сайту и авторизацию, так как эти элементы используются на всех страницах сайта.
А вот в state каждой страницы те данные, которые на ней отображаются
То есть вы за второй вариант. Но как хранить в state страницы? Получил данные и вывел на странице, при каждом новом обращении тянешь по новой? Это и есть state?
Максим Корольский: я не совсем понимаю, что вы имеете ввиду в своих вопросах. Как это "хранить в state страницы"? Вы в самом начале вспомнили про store, а потом говорить только о state. Сколько у вас сущностей? Сколько страниц? Что за приложение?
Я вас видимо не понял. У каждой страницы свой state который хранится в store, вы это имете ввиду?
У нас так же есть на каждую динамическую страницу (например user/) (храним в store.getState().userProfile) по id можем получать от туда данные конкретного пользователя если он уже единожды был загружены. Вопрос в том как их обновлять ?
Максим Корольский: мы в подобном случае для каждой страницы в state храним свой массив данных. Обновляем по необходимости. Например, если задействовали фильтр или поиск. Сами данные автоматом не изменяются, если кто-то их изменил на сервере. Если у нас добавляется с этой страницы новый объект в БД, то после этого заново стягивается весь набор этих данных и сетится в state. Надеюсь доступно объяснил наш подход