zoukankan      html  css  js  c++  java
  • 三、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"
            })
        }
    }
    
  • 相关阅读:
    升级到virtualbox2.1.4
    gentool 工具 modulerebuild
    解决man乱码问题
    关于HyperV的Linux驱动
    使用tmpfs优化firefox
    使用gmbox下载google歌曲
    升级到xorgserver1.5时出现的问题
    windows下使用where命令
    CSS中一些渐变效果与透明
    asp.net下密码框的一些小问题
  • 原文地址:https://www.cnblogs.com/yuxi2018/p/11966789.html
Copyright © 2011-2022 走看看