需求:一个对象
const state = {user: {verify: {state: 0}}
}
我需要使用类似this.set({ 'user.verify.state': 1 })
这种写法直接获取或修改state[user.verify.state]
的值。不知道别人怎么写的,我的写法如下:
const mutations = {set(state, params) {Object.keys(params).forEach(key => {// 需要替换的值const val = params[key];const arr = key.split(".");if (arr.length > 1) {let obj = state;while ((arr.length - 1) && (obj = obj[arr.shift()]));obj[arr[0]] = val} else {state[key] = val}})}
}
这样想要修改state
中任意一个对象,就非常方便了。