Хранение информации



Организация и Хранение Данных

Организация состояния(State) · Redux documentation in russian  Август 2, 2020 – 01:40
Microsoft для малого и среднего бизнеса

Могу ли я хранить все мое состояние в Redux? Должен ли я всегда использовать setState из React?

Не существует “правильного” ответа на этот вопрос. Некоторые пользователи предпочитают хранить все данные в Redux, чтобы поддерживать полностью сериализуемую и контролируемую версию своего приложения на протяжении всего времени. Другие предпочитают выносить некритичные данные (UI состояние), как, например “is this dropdown currently open”, в состояние компонента.

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

Ниже описаны некоторые негласные правила для определения тех частей данных, которые должны хранится в Redux-хранилище:

  • Остальные части приложения используют эти данные?
  • Потребуется ли в дальнейшем возможность создавать данные, основанные на этих данных?
  • Эти данные используются для управления несколькими компонентами?
  • Важна ли Вам возможность восстанавливать это состояние в какой-то момент времени, т.е. отладка по времени (time travel debugging)?
  • Требуется ли кэшировать данные, т.е. использовать то, что уже хранится в состоянии вместо повторного запроса?

Существует несколько пакетов, реализующих различные подходы к хранению данных в Redux-хранилище вместо состояния компонента, таких как: redux-ui, redux-component, redux-react-local и другие. Они также позволяют применять принципы Redux и концепцию редюсера к задачам обновления локального состояни компонента, поддерживая идею this.setState( (previousState) => reducer(previousState, someAction)).

Дополнительная информация

Статьи

Обсуждения

Библиотеки

Могу ли я хранить функции, промисы или другие несериализируемые данные в моем хранилище состояния?

Настоятельно рекомендуется класть в хранилище только простые сериализуемые объекты, массивы и примитивы. Технически возможно добавить несериализуемые данные в хранилище, но это может сломать способность сохранять и восстанавливать содержимое хранилища, что сделает невозможным отладку по временной шкале (time-travel debugging).

Source: rajdee.gitbooks.io

Похожие публикации:

  1. Незаконное Хранение Данных
  2. Требования к Хранению Данных
  3. Организация Сетей Хранения Данных