zoukankan      html  css  js  c++  java
  • vuex 中关于 mapGetters 的作用

      mapGetters 工具函数会将 store 中的 getter 映射到局部计算属性中。它的功能和 mapState 非常类似,我们来直接看它的实现:

    export function mapGetters (getters) {
    	const res = {}
    	normalizeMap(getters).forEach(({ key, val }) => {
    		res[key] = function mappedGetter () {
    			if (!(val in this.$store.getters)) {
    				console.error(`[vuex] unknown getter: ${val}`)
    			}
    			return this.$store.getters[val]
    		}
    	})
    	return res
    }
    

      mapGetters 的实现也和 mapState 很类似,不同的是它的 val 不能是函数,只能是一个字符串,而且会检查 val in this.$store.getters 的值,如果为 false 会输出一条错误日志。为了更直观地理解,我们来看一个简单的例子:

    import { mapGetters } from 'vuex'
    export default {
    	// ...
    	computed: {
    		// 使用对象扩展操作符把 getter 混入到 computed 中
    		...mapGetters([
    			'doneTodosCount',
    			'anotherGetter',
    			// ...
    		])
    	}
    }
    

      经过 mapGetters 函数调用后的结果,如下所示:

    import { mapGetters } from 'vuex'
    export default {
    	// ...
    	computed: {
    		doneTodosCount() {
    			return this.$store.getters['doneTodosCount']
    		},
    		anotherGetter() {
    			return this.$store.getters['anotherGetter']
    		}
    	}
    }
    

      再看一个参数 mapGetters 参数是对象的例子:

    computed: mapGetters({
    	// 映射 this.doneCount 到 store.getters.doneTodosCount
    	doneCount: 'doneTodosCount'
    })
    

      经过 mapGetters 函数调用后的结果,如下所示:

    computed: {
    	doneCount() {
    		return this.$store.getters['doneTodosCount']
    	}
    }
    

    .

  • 相关阅读:
    C# 测试 modbusTCP 经验积累
    C#制作透明色GIF动画的类
    C# esc退出窗体
    让PPT演示文稿循环播放
    C# hex 转 float
    C# PowerPoint操作的基本用法。
    将listview的checkbox改成单选。
    google搜索栏设置
    如何在C++中实现Deprecated API Anthony
    只能用new生成的对象 Anthony
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7636082.html
Copyright © 2011-2022 走看看