計算されたゲッタにいくつかのプロパティを代入するのはおかしいですか?計算されたゲッタのアラインメント
props:
invoice:
type: Object
computed:
total:
@invoice.subtotal = { some expression }
これは、請求書オブジェクトが他のいくつかのコンポーネントで共有され、これらのコンポーネントが小計コンポーネントから計算されたデータを必要とするためです。
計算されたゲッタにいくつかのプロパティを代入するのはおかしいですか?計算されたゲッタのアラインメント
props:
invoice:
type: Object
computed:
total:
@invoice.subtotal = { some expression }
これは、請求書オブジェクトが他のいくつかのコンポーネントで共有され、これらのコンポーネントが小計コンポーネントから計算されたデータを必要とするためです。
理想的には、計算されたプロパティ内でインスタンスの状態を変更しないでください。
Vuexをご覧ください。Flux architectureに基づく共有状態です。 Vuexでは、ゲッターを持ち、複数のコンポーネント間で反応状態を共有することができます。
しかし、getterは一方向のデータしか束縛しません(store>コンポーネント)。私の場合は、計算された値をコンポーネントからストアに保存する必要があります。たとえば、商品の配列と小計属性を持つ請求書ストア、小計コンポーネントでは、私はすべての製品を収集し、小計を計算し、店舗に保存したいと思います。そして、多くの属性がありますが、フィールドごとにミューテータを作成する必要がありますか? –
はい、Vuex状態を突然変異させるには、ストアミューテータを使って突然変異させる必要があります...あなたが書き込む方法は、あなた自身の決定です。いくつかのフィールドに対して1つのミューテータを使用することができます。実際に何をしたいのかに依存します。 –
私は多くの計算されたプロパティを持っています。ちょっと奇妙なことですが、コンポーネントのロジックを子コンポーネントに分割することはできますが、しかし、今日の終わりには、私は大きなvuex.storeオブジェクトを定義する必要があるようです。だから私は大きなvueコンポーネントと大きなvuex.storeの違いは分かりません。 :/ –
これは、 'invoice.subtotal'自体が計算されるべきであることを示唆しています。 –