私は、Vuexストアの各アイテムに計算されたプロパティを追加する方法を見つけようとしています。たとえば、Todoリストアプリケーションでは、各TodoアイテムにDueDateとCompletedフラグが設定されています。これらのプロパティに基づいて、Todoアイテムが期限切れであるかどうかを計算することができます。各アイテムのVuexゲッター
computed: {
...mapState({
todos: state => state.Todos.map(t => {
// Add some computed fields
return {
...t,
OverDue: !t.Completed && Date.now() > t.DueDate
};
})
})
}
しかし、これは計算は、各コンポーネントのために実装する必要がありますを意味します
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
Todos: []
},
mutations: { /* ... */ },
actions: {/* ... */ }
);
let exampleTodo = {
Title: 'Go grocery shopping',
Completed: false,
DueDate: new Date("10/12/2017")
};
これまでのところ、私はこのようなmapState
を使用して、コンポーネントレベルで計算されたプロパティを追加してきました。この単純なことは大したことではありませんが、より複雑な計算のためには、私はむしろ1か所に配置したいと考えています。店舗でこれを達成する方法はありますか、またはこのパターンを使用し続ける必要がありますか?それとも、私は行方不明ですか?
ああ今では明らかに思える:
Here's the documentation on Vuex getters.
は、ここでの例です。ありがとう! – connor