Могу ли я использовать альтернативные магазины в нескольких компонентах в реакции?
Например, на одной странице я хочу использовать UserStore в МНОГИХ компонентах. Можно ли так использовать?
Если компоненты являются дочерними для UserComponent, я должен объявить {...props} в каждом дочернем элементе?? или можно использовать дублирующую накладную инъекцию во многих дочерних компонентах?
Если компоненты находятся вне UserComponent, можно ли объявить UserStore во многих компонентах дубликатами?
Что такое лучшая практика?
<Component1>
<UserComponent> < --- UserStore : get states to props
<Component1 />
<Component2>
<Component3>
<Component4>
<Component5 /> < --- UserStore : get states to props
</Component4>
</Component3>
</UserComponent>
</Component1>
<Component6>
<Component7></Component7> < --- UserStore : get states to props
</Component6>
1 ответ
Здесь есть много точек зрения. Я признаю, что я не использовал alt.js, так что, может быть, есть неубедительные аспекты, которые я не рассматриваю.
Это сказал;
Flux Documentation FB предлагает лучшую практику в этом направлении. Их архитектурное предложение состоит в том, чтобы использовать две категории компонентов; Контейнеры и Представления.
Контейнеры взаимодействуют с хранилищами для сбора данных и не получают реквизита. У них нет логики представления, и они передают данные хранилища дочерним представлениям как реквизиты.
Представления получают всю свою информацию как реквизит (без связи с магазином).
Так что да, вы бы передавали эти значения от ребенка к ребенку в качестве реквизита. Но у вас может быть несколько Контейнеров, которые извлекают одну и ту же информацию из магазинов. Важно то, что Контейнеры должны быть независимы от своего положения и местоположения, совершенно не обращая внимания на то, кем являются их собственные родители.