最近、angle2アプリケーションを2.0.0-beta.15
から2.0.0-rc.5
にアップグレードしました(新しいルータ3.0.0-rc.1
への移行を含む)。ページ左側にメニューとサブメニューがあり、アプリケーションには同時に2つの<router-outlet>
があります。新しい角型ルータ(3.0.0-rc.1)でコンポーネントを再利用
アップデート後にいくつかの異なる動作が発生すると、コンポーネントが<router-outlet>
の外部にあっても、(アップデート後の)アプリケーションのコンポーネントが破棄されて構築されることに気付きました。古いルータではそうではありませんでした。新しいルータが既存のコンポーネントを再利用できないようなものです。
角度をplunkerにフォークし、いくつかの単純なデバッグコンソール出力をすべてのコンポーネントコンストラクタに追加して、これが新しいバージョンと設定ではないことを確認します。動作は同じです:コンポーネントが決して再利用されないので、count
は決して増加しません。誰もコンポーネントのインスタンスを再利用する方法を知っていますか?
他にも、新しいルータがコンポーネントを再利用したくない理由を説明できる人はいますか?私はすでにCanReuse
を@angular/router-deprecated
から見つけましたが、この機能はまだ新しいルータには到着していません。しかし、CanReuse
が新しいルータのためにそこにあったとしても、すべての "静的な"コンポーネントのためにCanReuse
を実装するのではなく、デフォルトでコンポーネントを再利用する方が理にかなっていますか?コンポーネントを再利用しないでください。
http://stackoverflow.com/questions/38036498/angular2-router3-cant-reload-refresh-active-route –
ありがとうNikolay、これは何かについてのようです。 –