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