mapActions() 返回的是一个对象, 用了 ... 扩展符后,才可以放进一个对象里,和其他组件内定义的 method 在同一个 methods 对象。
{
methods: mapActions() // 如果没有其它组件内的定义的方法,可以这样写
}
{
methods: {
...mapActions(),// 如果有其他定义的方法
otherMethod1 () {},
otherMethod2 () {}
}
}
假设mapActions(),返回的是
{
a() {},
b() {}
}
那 ...mapActions(),只不过是把a,b都拿出来跟其他方法放在一起了而已。
...代表两种意思,一种是剩余操作符,一种是扩展运算符,你题目里用的那个应该是剩余操作的意思,而...mapActions才是扩展运算符。
其中参数的使用方法原理为::
methods: {
'some/nested/module/foo': (val) {
return this.$store.dispatch('some/nested/module/foo', val))
}
}
但这个Mutations这么长, 一般不会这样去转换,会加个别名
methods: {
...mapActions({
foo: 'some/nested/module/foo',
bar: 'some/nested/module/bar'
})
}
//相当于下面的写法
methods: {
foo(val){
return this.$store.dispatch('some/nested/module/foo', val))
}
//bar 省略....
})
}