Информация о технологии : ReactJS + Машинопись для внешнего интерфейса. API REST, созданный с помощью nodeJS + express, который хранит данные в базе данных Cloud Firestore. Приложение React внешнего интерфейса извлекает данные с помощью API REST.
Управление состояниями на внешнем интерфейсе : в настоящее время я использую ловушки React для управления состоянием. useContext используется для управления глобальным состоянием (информация о пользователе / сеансе), а useReducer используется для состояния уровня маршрута. Хук useReducer вызывается компонентом верхнего уровня в любом заданном маршруте.
Требуется совет : если пользователь выполняет действие с пользовательским интерфейсом, я хочу обновить локальное состояние и показать соответствующие изменения в интерфейсе мгновенно. Я хочу убедиться, что данные сохраняются в нашем бэкэнде, и отображать сообщение об ошибке, только если нам не удалось сохранить данные.
- Какой самый простой способ обработки синхронизации данных в этом случае? Какая здесь лучшая архитектура?
- Должен ли я выполнять вызовы REST API изнутри каждого действия в редукторе?
- Какой самый простой способ реализовать это в большом приложении? Как мне организовать свой код для синхронизации данных?
- В том же духе, если я хочу прослушать изменения пользовательского объекта в серверной части и перезагрузить информацию пользователя, которая хранится в глобальном состоянии, с помощью ловушки useContext Как мне попытаться это сделать?
PS Мне нравится, как Асана плавно синхронизирует и сохраняет ваши данные. Мне интересно, каковы лучшие практики здесь, если я хочу получить этот опыт без проблем.