Учитывая, что у меня есть поле поиска на основе AJAX, которое реагирует на ввод пользователя, запрашивает результаты поиска из бэкэнд через AJAX, показывает результаты в выпадающем списке ниже поля поиска, позволяет осуществлять навигацию через результаты поиска с помощью клавиш курсора и реагирует на нажатия клавиш esc
интеллектуальным способом.Как обрабатывать переходы состояния в компоненте React/Flux
Поскольку текущий компонент на основе базовой линии разбит многими способами, я хотел бы переопределить этот компонент поиска, используя React
и, возможно, Flux
архитектуры.
При планировании оказался, что мой компонент имеет, по меньшей мере, ряд 10 различных состояний (возможно даже больше), он должен реагировать на actions
вызванных данными, вводимого пользователя, а также к actions
вызванным асинхронными ответам сервера.
Вопрос1: Должен ли я моделировать все состояние в store
вместо родительского компонента? Это означает, что каждый пользовательский ввод изменяет состояние магазинов, например :searchQuery
, :searchResults
, и мой компонент родительского представления реагирует на это изменение состояния?
Вопрос2: Или я должен моделировать все состояние в самом родительском компоненте и опустить store
, dispatcher
и actions
полностью?
Question3: Независимо от обработки состояния в store
или в самом родительском компоненте, оказалось, что сам компонент может иметь по крайней мере 10 различных состояний, и там должно быть только определенное количество переходов, разрешенных. Обычно, я бы включил реализацию statemachine здесь, смоделировал все :states
и разрешил :transitions
и выполнял переходы каждый раз, когда действие принимается store
, или в родительском компоненте вызывается метод обратного вызова. Каков правильный React way
для обработки states
и transitions
между этими states
в компоненте?
Вопрос4: Что представляет собой современная реализация Flux
для Javascript? До сих пор я видел reflux, но я не уверен, это мой яд.
Я открыт для всех предложений.
У меня есть некоторые подобные вопросы. У меня есть форма, которая не сохраняется до нажатия кнопки сохранения. Должен ли я иметь компонент, мутирующий его состояние, и вызывать только действие, когда необходимо знать хранилище (или другие компоненты)? Должен ли компонент уведомлять хранилище каждый раз, когда пользователь вводит ввод? Должен ли компонент иметь текущее состояние, а хранилище устаревать до тех пор, пока оно не будет перенаправлено на настойчивость (или требуется более сложная логика)? Это сделает источник правды путаным? –