新手使用vuex使用请教

新手使用vuex使用请教

 state () {

return {

tags: []

}

},

mutations: {

delTags(state,payload){

console.log(payload,"-------")

let temp = state.tags.filter(element => {

return element.path != payload.path;

});

//这样无法触发页面数据变动

state.tags = temp

//这样可以触发页面数据变动

// state.tags.splice(1,1)

console.log(state.tags,"==========")

}

想请教一下,我这里在delTags方法里直接给state.tags赋值,页面数据不会跟着变。
但是使用splice方法是可以的,请问是为什么?


回答:

VueX官方文档中明确提到Mutations需要遵循Vue的响应规则,由于Vue2响应式原理限制,直接对数组赋值时数据不是响应式的,所以页面不会有变化。在操作数组和对象时应该使用原型链的方法,或者使用Vue.set(obj, 'newProp', 123)的方式,可参考:https://cn.vuejs.org/v2/api/#...

以上是 新手使用vuex使用请教 的全部内容, 来源链接: utcz.com/p/937341.html

回到顶部