アプリケーションアーキテクチャの質問。 ページに多くのコンポーネント(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 CSSトランジション
- 3. React/Reduxダウンロードファイル
- 4. React-reduxクライアントサイドアプリケーション
- 5. Reusable react-reduxコンテナコンポーネント
- 6. React/redux通知
- 7. React Redux Dispatch
- 8. React Native + Redux
- 9. Localstorage with react-redux
- 10. React + Redux connect(mapStateToProps)
- 11. InfiniteLoaderとreact-redux
- 12. React Redux MapStateToProps
- 13. React reduxサブアプリケーション
- 14. React Reduxのステートレスイベントリスナー
- 15. React/Reduxディープ・プロップdependecy
- 16. React + Reduxアーキテクチャのアプローチ
- 17. "react-redux"アプリケーションのデバッグ?
- 18. React Redux通知メッセージ
- 19. React Redux無限ループ
- 20. React/Redux/ReactDnd - エラー:removeComponentAsRefFrom
- 21. React-Redux Drop HTTPリクエスト
- 22. React Reduxの責任
- 23. React&Reduxアプリケーション設計
- 24. react reduxミドルウェアディスパッチ2アクション
- 25. React-Redux with Bootstrap - モーダルコンポーネント
- 26. React-Reduxエラーページ管理
- 27. React Native/Redux React - Reduxストアにアクセスできない
- 28. Redux/React-Redux - レデューサーで "state = XXX"を使用
- 29. React Redux + Socket.IO + React Appの作成
- 30. redux-sagaとreduxとreact-reduxの使い方
依存:アクティブなときに各子コンポーネントに一意のURLがある必要がありますか?はいの場合、React Routerはあなたが望むことを自明に行うことができます。いいえの場合は、親コンポーネントで状態を使用して、どの子をレンダリングするかを決定する方がよいでしょう。 –
面白いことは、私はあなたがラテン動詞を変えていたということです。/OT –