三、Vuex - Getter
Getter 依赖 state 计算后的数据状态
getter 是从 store 中的 state 中派生出的一些状态, getter 的返回值会根据依赖被缓存起来, 且只有依赖发生改变才会被重新计算.
定义 getters
const store = new Vue.Store({ state: { count: 10 }, getters: { // 默认 state 作为第一个参数 doneTodos: state => { return "$" + state.count; }, // 也可以接受其他的 getter 作为第二个参数 todo: (state, getters) => { return getter.doneTodos; // $10 }, // 通过返回一个函数, 来实现 getter 传参 getTodo: (state) => { return (id) => { return state.todos.find(item => item.id === id); } } } });
访问 Vuex 中的 getter 数据
// 1. 通过属性的方式访问 this.$store.getters.doneTodos; // $10 // 2. 通过方法访问, 每次都会进行调用,不会缓存结果 this.$store.getters.getTodo(2); // 实现了传参
mapGetter 辅助函数
辅助函数仅仅是将 store 中的 getter 映射到局部计算属性
import { mapGetters } from 'vuex' export default { computed: { // 使用对象扩展运算符将 getter 混入computed 对象中 ...mapGetters([ "doneTodos", "todo" ]), // 以对象的形式, 可以取别的名称 ...mapGetters({ // 把 this.todoGetter 映射为 this.$store.getters.todo "todoGetter": "todo" }) } }
相关推荐
yuzhu 2020-11-16
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
sjcheck 2020-11-03
怪我瞎 2020-10-28
源码zanqunet 2020-10-28
gloria0 2020-10-26
王军强 2020-10-21
学习web前端 2020-09-28
QiaoranC 2020-09-25
anchongnanzi 2020-09-21
安卓猴 2020-09-12
Macuroon 2020-09-11
kiven 2020-09-11
LittleCoder 2020-09-11
Cheetahcubs 2020-09-13
小焊猪web前端 2020-09-10
颤抖吧腿子 2020-09-04
softwear 2020-08-21