アプリケーションアーキテクチャの質問。 ページに多くのコンポーネント(look at the picture)(mains)があるとします。 メインの子供のコンポーネント(アクティブ/非アクティブ)を切り替えるのに、どんな効果がありますか? ページ(1、2、3、次)? 両方のタスクでreact-routerを使用できますか? P.:レンダリングにReactJSを使用していますReact、Redux、React-Router?
答えて
私は結果フィルタリングに反応ルータを使用しません。 Reduxを使用しているので、あなたのレデューサーをメインセクションに分割し、アクティブ/非アクティブの状態とセクションごとの現在のページをすべて1つのストアに保持することができます。
私はこのページでreact-routerを使う必要はないと思います。
あなただけの以下のように、減速により(アクティブ/アクティブではない、1,2,3、次の)状態を制御する必要があります
case NEXT_PAGE:
return {...state, list:[{active:0, ...others},{active:1, ...others},...], page: 1};
をそして、あなたは、あなたがこの上で表示するデータを取得することができます小道のページ。
mapStateToProps(state) {
return {
list: state.xxx.list,
currentPage: state.xxx.page
totalPage: state.xxx.total
}
}
キーは使用例です。あなたは以下のユースケースを持っている場合:
- ユーザーがフィルタリングされた結果とページのリンクを貼り付けコピーして、他の人
- ユーザーブックマークでフィルタリング結果ページを共有し、後でそれに戻って来ています。
次に、私は反応ルータを使用すると言うでしょう。
あなたは、このようなルートを持つことができます。 <Route path="main/:status/:page" component={Main}/>
その後のparamsオブジェクトは、自分のメインコンポーネントに小道具として注入されるだろう。
ユーザーがボタンをクリックすると、反応ルータからのpush
を使用してルートを変更するか、反応ルータからLink
を単に使用します。 (reduxでディスパッチアクションを使用するか、ローカル状態として保存した場合はthis.setState
を使用するのではなく)。
私はそれがreduxまたはローカル状態でそれを格納するよりも難しくないと思う、上のより多くのユースケースの追加の利点。
実用的でスケーラブルなアプリケーションアーキテクチャが必要な場合は、スターターキットを使用することをお勧めします。
良いスターターキットのwikiでは、選択したデザイン原則が説明されます。
ヘッドレスバックエンドと組み合わせる私の好きなスターターキットの1つはReact Redux starter kitです。
- 1. ReduxとReactRouterを使用したログインアプリ
- 2. プロバイダー:react-redux
- 3. React Native + Redux
- 4. React Redux Dispatch
- 5. React/Redux APIデータオブジェクト
- 6. React-Reduxリスト
- 7. React-Redux CSSトランジション
- 8. React Redux Sagaイベントチャンネルキャンセル
- 9. React-reduxクライアントサイドアプリケーション
- 10. React/Reduxダウンロードファイル
- 11. InfiniteLoaderとreact-redux
- 12. React Reduxのステートレスイベントリスナー
- 13. React + Redux connect(mapStateToProps)
- 14. React Redux MapStateToProps
- 15. Localstorage with react-redux
- 16. React Redux Firebaseアップロードファイルオブジェクト
- 17. React/redux通知
- 18. React Reduxアクションディスパッチ
- 19. Reusable react-reduxコンテナコンポーネント
- 20. React Reduxのホットリロードバンドルコード
- 21. React reduxサブアプリケーション
- 22. React Redux + Saga Imageカルーセル
- 23. React Redux通知メッセージ
- 24. React/Redux/ReactDnd - エラー:removeComponentAsRefFrom
- 25. React/Reduxディープ・プロップdependecy
- 26. React + Reduxアーキテクチャのアプローチ
- 27. react reduxミドルウェアディスパッチ2アクション
- 28. "react-redux"アプリケーションのデバッグ?
- 29. React Redux <Connector>
- 30. React Redux無限ループ
依存:アクティブなときに各子コンポーネントに一意のURLがある必要がありますか?はいの場合、React Routerはあなたが望むことを自明に行うことができます。いいえの場合は、親コンポーネントで状態を使用して、どの子をレンダリングするかを決定する方がよいでしょう。 –
面白いことは、私はあなたがラテン動詞を変えていたということです。/OT –