2017-02-03 15 views
24

ルータストアngrxプロジェクトhttps://github.com/ngrx/router-store)を参照しています。角度2ルータのみを使用する場合と比較してngrxルータストアプロジェクトの目的を理解する

私はたとえば...

このプロジェクトを使用する方法が明確ではないですのは、プロジェクトのドキュメントから、次のサンプルを見てみましょう:

store.dispatch(go(['/path', { routeParam: 1 }], { query: 'string' })); 

これはへの代替として使用されることを意図して角度2のルータ:router.navigate(['/path...

...または特定の状況でのみngrxルータストアを使用する必要がありますか? (ある場合は?)

また、角度2のルータのhtmlリンクの場合、ngrx router-storeにはどうなりますか。 <a routerLink="/heroes"をクリックしますか?

さらに一般的に、誰かがngrxルータストアプロジェクトによって達成されたことをプレーンアングル2ルータと比較して説明できますか?

また、言い換えると、ngrx router-storeは、角度2のルータに加えて何をもたらしますか?

編集:ngrxに関する興味深い情報源とサンプルは、もちろんngrx example-app(https://github.com/ngrx/example-app)です。

FYI、ここで発見されるコメントです

...私はそこにルータ・ストアに依存が見つかりましたが、私はルータ-ストアがアプリ内で使用されている場所を見つけることができませんでした例えば、ルータストアについてアプリ:

@ ngrx /ルータ-店舗が店で最新のルータの状態を維持し、 は、ルータの状態のための真実の単一のソースとしてストアを使用します。

答えて

41

@ngrx/router-storeが存在するため、ストアはアプリケーションのルーティング状態のためにsingle source of truthになる可能性があります。

これがなければ、店舗では表現されていないアプリケーション状態(現在のルート)が存在します。つまり、DevToolsを使用したタイムトラベルデバッグは不可能です。ルートを表すストア内に状態がなく、ルート変更を表すアクションがないためです。

router-storeは、角度ルータに代わるものではありません。リスナーはルーティングアクションとルーター自体をワイヤリングします。

go action creatorを使用してルーティングアクションを発行すると、特定のパスを含む"[Router] Go"アクションがrouter-storeによって聞かれ、対応するルーターメソッドが呼び出されます。 router-storeがルータから聞いたときにルートが変更された場合、ルート変更を表すアクションが"[Router] Update Location"であり、そのアクションによってストア内のルータの状態が更新されていると判断されます。

代わりgoアクションの作成者を使用しての、routerLinkは、ルート変更をもたらすために使用され、場合、router-storeは変更が聞こえますし、店舗のルータの状態が更新表示されます"[Router] Update Location"アクションを放出します。

したがって、アクションまたはより伝統的なリンクを経由してルートが変更されても、ストアには常にルータの状態が含まれます。

ルート変更を表すアクションを"[Router] Update Location"とすると、DevTools経由でルート変更を元に戻すことができます。ルーターの状態が店舗に表示されていないと実行できないことがあります。あなたはReduxのデベロッパーツールを使用していませんでした場合は

、私はあなたがそれらをチェックアウトをお勧めします:

+4

をまた、あなたが知って興味があるかもしれませんAngular v3ルータは['@ ngrx/router'](https://github.com/ngrx/router)に基づいており、' '@ ngrx'チームと一緒に構築されました(http:// angularjs.blogspot.com。 au/2016/06/improvement-coming-for-routing-in.html)を参照してください。 – cartant

+6

本番環境で削除しますか?その使用がDevToolsのページ遷移を助けるだけである場合、または他のタスクに使用できるかどうか – ramon22

+0

@ ramon22:これについてansを取得しましたか? –

関連する問題