demoValue: state => state.demoValue是什么语法呢?

我在vue中关于全局变量store的getters里面看到类似的代码,请问是es6语法吗?具体怎么理解这个代码呢?

完整的是
getters: {
demoValue: state => state.demoValue,
},

如果是demoValue是对象的属性,为什么不直接
getters: {
demoValue: state.demoValue,
},

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 4

区别就是,一个接受的是变量,一个接受的是函数

2年前 评论

@Error_404 谢谢 这里为什么这样定义呀,函数传参再返回对应值 而不是直接返回值

2年前 评论

前面那个是一种闭包写法,只是初始化定义,调用时候去执行函数内容,而不是赋值

2年前 评论
getters: {
demoValue: state => state.demoValue,
},

es6 的简写形式 相当于 es5 的

getters: {
demoValue: function(state) {
        return state.demoValue
    }
},

这样定义的 demoValue 是一个函数,每次获取 demoValue 应该都会执行这个方法,从而获取到最新的值。

getters: {
demoValue: state.demoValue
},

这样的话 demoValue 就直接是 state.demoValue 的值或者引用,如果 state.demoValue 恰好是一个简单值 (number, string, boolean, undefined, null),getters.demoValue 就定死了,不会被动更新了。
个人理解,可能有出入。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!