新手使用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

