私は Flux 全体に慣れていませんが、Reflux から始めて理解を深めようとしています。
私が理解しているように、Refluxストアにtriggerは、ストアのデータが変更されたことを示すメソッドがあり、更新されたデータをそこに渡します。このデータは、 Reflux.connect mixin または同様のメソッドを使用して、React コンポーネントの状態として (または状態のプロパティの 1 つとして) 設定できます。
しかし、ストアに個別にリッスンする必要がある複数のデータ セットがある場合はどうなるでしょうか。TodoMVC RefluxJS exampletitleを変更していて、TodoStore にtodo リスト (listおよび TODO アイテムのリスト)の名前を示すプロパティも含めたいとします。プロパティ<Title>への変更をリッスンし、変更時に をその状態として設定するコンポーネントもあるとします。titletitle
を呼び出すとthis.trigger(title)、タイトル コンポーネントが更新されますが、todo コンポーネントはタイトル文字列を状態として使用しようとするため、どのデータが変更されたかを示す方法が必要です。これら 2 つのプロパティ (titleとlist) を別のストアに分ける必要がありますか? または、すべての呼び出しにtrigger、プロパティを示す文字列を含める必要があります:this.trigger("title", this.title)またはthis.trigger("todos", this.list). それとも、すべてのデータを 1 つのオブジェクトに結合して、リスナーが (たとえば を使用してReflux.connectFilter) 選択する必要がありますか?
this.trigger("todos", {
todos: this.list,
title: this.title
});
これらの最後の 2 つの例では、ストアから返されたデータを取得し、コンポーネントの状態をそれに直接設定するため、this.trigger()呼び出しに新しいデータが導入されます。これはReflux.connect、これ以上使用できないことを意味します。connectこれは、 を使用Reflux.listenTo(TodoStore,"onTodoChange")して、triggerこのコンポーネントに関係のない呼び出しを除外する必要があるということですか?