定义状态 store.js
state: {
// 待办事项
todoList: ["待办事项A", "待办事项B"]
}
於元件中使用
因stre中状态具响应式,直接於 计算属性(computed) 中引入。
HTML
<li v-for="item in todoList" :key="item">
{{ item }}
</li>
import
import store from "./store/store.js";
计算属性
computed: {
todoList () {
return store.state.todoList;
}
}
取代 return store.state.xxx
自订计算属性需透过 ...
import { mapState } from 'vuex'
export default {
...others
computed: {
...mapState(['todoList'])
}
};
store的计算属性,接受state作为第一个参数
state 的 todoList进行微调
todoList: [
{ id: 1, text: '待办事项A', done: true },
{ id: 2, text: '待办事项B', done: false }
],
定义Getter
getters: {
// vuex 中的计算属性
doneTodos: state => {
return state.todoList.filter(todo => todo.done)
}
}
以其他getter作为参数
getters: {
// vuex 中的计算属性
doneTodos: state => {
return state.todoList.filter(todo => todo.done)
},
// 以其他getter作为参数
// 透过 state 才可使用 length 函数
doneTodosCount: (state, getters) => {
return getters.doneTodos.length
}
}
元件计算属性
todoList() {
return store.getters.doneTodos;
},
totalDone() {
return store.getters.doneTodosCount;
},
透过方法
访问Getter
定义方法於getter
gettodoById: (state) => (id) => {
return state.todoList.find((todo) => todo.id === id);
},
元件计算属性
store.getters.getTodoById(1)
// -> { id: 1, text: '待办事项A', done: true }
同 mapState
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters([
'doneTodos',
'doneTodosCount'
])
}
}
於不同元件,重新定义getter名称
...mapGetters([
doneTodeA: 'doneTodos',
])
剩下留给明天吧
有错误请不吝指教!
参考资料
https://vuejs.org/v2/guide
https://medium.com/itsems-frontend/vue-vuex1-state-mutations-364163b3acac
https://ithelp.ithome.com.tw/articles/10185686
https://ithelp.ithome.com.tw/articles/10237349
https://medium.com/itsems-frontend/vue-vuex4-modules-ddb3eec6b834
感谢各路大神
<<: Flutter基础介绍与实作-Day5 Dart语法介绍(2)
>>: 【後转前要多久】# Day04 HTML - 元素属性、以及Emmet语法
Query,Key,Value 在昨天我们有提到 "自" 注意力机制,现在我们更...
话说今天本来是打算要接着昨天的进度纪录架设 grafana 的 dashboard,可是昨天半夜 d...
在 2019 年时,Apple 推出了两套强大的框架分别是 SwiftUI 以及 Combine,而...
这次做的微型仓储系统的时候,初期系统是以单电梯设计的,後来爲了提高效率,改成了双电梯; 这就像是有一...
今天是到客户端处理弱点的第15天,而铁人赛剩下倒数3天了。 继续加油下去中风险等级也快要修完了,今天...