アプリケーションの状態を同期させておくときに、Reduxスタイルの設計アプローチを使用することの意味を理解しようとしています。 特に、大量のデータセットを処理する場合のパフォーマンスの結果は何ですか。私はそれを購読する私のトップレベルのコンポーネントではその後Angular4 ChangeDetection OnPushとRedux - パフォーマンス
const reducer = (state:AppState, action:Action)=>{
swtich(action.type) {
case "ADD":
return state
default:
return state
}
}
:
@Component({...})
class AppComponent implements ngOnInit {
propertyA:number;
propertyB:number;
constructor(private store:AppStore<AppState>) {}
ngOnInit() {
this.store.subscribe((data:AppData)=>{
this.propertyA = data.propertyA;
this.propertyB = data.propertyB;
})
}
}
そして、子コンポーネントは、単にpropertyAとpropertyBを受け は、我々はその下のような単純な減速は、単に状態を返すとしましょうvia @Input
@Component({ changeDetection: ChangeDetectionStrategy.OnPush})
class Child {
@Input() propertA:number;
@Input() propertyB:number;
}
これで、OnPush戦略を冗長化することはできません。新しい状態は常にルートレデューサーによって返されるため、入力プロパティの参照も変更する必要がありますか?または、OnPush戦略の仕組みを完全に理解していないのですか? 上記の場合、これは大きな問題ではありませんが、大きなデータセットについてはどうでしょうか?より多くの "枝"と。各アクションは常に新しい状態を返し、コンポーネントツリー全体の変更検出をトリガーします。
今、私は自分の州の個々の支店を購読できることを理解しています。しかし、根減退薬は常に完全に新しい状態を返すことはありません。
ありがとうございます!私は実際にredux.js.orgサイトに言及しているこの誤解を抱いていました。また、OnPush ChangeDetection戦略を使用してコンポーネントを最適化する方法について多くの助けになります。 –