Vue中的getters是一種用于在store中獲取state屬性和派生出一些新的值的方法。如果你有一些計算屬性需要在多個組件中使用,你可以把這些屬性提取到getters中。它們類似于計算屬性,但是可以接受參數,因此你可以基于不同的參數返回不同的值。
//在store中定義getters const store = new Vuex.Store({ state: { todos: [ { id: 1, text: "Buy groceries", done: true }, { id: 2, text: "Take a walk", done: false }, ], }, getters: { getTodoById: (state) =>(id) =>{ return state.todos.find((todo) =>todo.id === id); }, getTodosByDone: (state) =>(done) =>{ return state.todos.filter((todo) =>todo.done === done); }, }, }); //在組件中使用getters export default { computed: { todo() { return this.$store.getters.getTodoById(this.todoId); }, doneTodos() { return this.$store.getters.getTodosByDone(true); }, }, props: { todoId: { type: Number, required: true, }, }, };
在上面的代碼中,我們先定義了一個含有兩個todo項的state,然后定義了兩個getters:getTodoById和getTodosByDone。getTodoById接受一個id作為參數,返回當前id所對應的todo項。getTodosByDone接受一個done值作為參數,返回所有done狀態為done的todo項。
在組件中我們使用computed屬性來調用這些getters。我們傳遞了一個todoId屬性作為參數來獲取特定的todo項。我們還通過doneTodos計算屬性來獲取所有完成的todo項。
上一篇HTML怎么查看網頁代碼
下一篇go獲取json 數組