vuex的使用:为什么我可以在js中这样修改state的值

官网是这样说的

你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit)
mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。

但是在我的项目中我这样写

var list = this.$store.state.records;
for(let i=0;i<list.length;i++){
    list[i].days = this.computeDayas(list[i].time);
}

通过vuex-devtools发现state中的records多出了days的一个属性!?,这是为什么呢?我并没有显示的去修改数据啊


阅读 4.4k
2 个回答

对象引用而已, 这样加进去的数据, 不会触发视图更新

使用严格模式:

const store = new Vuex.Store({
    // ...options
    strict: process.env.NODE_ENV !== 'production', // 在非生产环境下,使用严格模式
})

官方文档地址

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题