// 记录当前经度纬度
[RECORD_ADDRESS](state, {
latitude,
longitude
}) {
state.latitude = latitude;
state.longitude = longitude;
},
传统的函数参数传递方法中,需要一一对应参数否则,会报错,如下:
function personInfo(name, age, address, gender) {
console.log(name, age, address, gender)
}
personInfo('william', 18, 'changsha', 'man')
使用解构赋值的方法则灵活得多。参考ES6解构赋值
这里使用{latitude,longitude}作为参数,在函数调用时,传参则方便很多。
当mutation事件类型比较多的时候, 我们可以使用常量替代 mutation 事件类型。同时把这些常量放在单独的文件中可以让我们的代码合作者对整个 app 包含的 mutation 一目了然:
//mutation-types.js
export const RECORD_ADDRESS = 'RECORD_ADDRESS'
//store.js
import {RECORD_ADDRESS} from ',/mutation-types'
....
//mutation.js
export default{
//ES2015风格的计算属性命名功能来使用一个常量作为函数名
[RECORD_ADDRESS](state, {
latitude,
longitude
}) {
state.latitude = latitude;
state.longitude = longitude;
},
}
在组件中使用
import {mapMutations} from 'vuex'
...
methods:{
//将this.RECORD_ADDRESS()映射为this.$store.commit('RECORD_ADDRESS')
...mapMutations(['RECORD_ADDRESS'])
}
组件中直接调用 this.RECORD_ADDRESS()