猿问

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的一个属性!?,这是为什么呢?我并没有显示的去修改数据啊


翻过高山走不出你
浏览 636回答 2
2回答

小怪兽爱吃肉

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

慕妹3242003

使用严格模式:const&nbsp;store&nbsp;=&nbsp;new&nbsp;Vuex.Store({&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;...options &nbsp;&nbsp;&nbsp;&nbsp;strict:&nbsp;process.env.NODE_ENV&nbsp;!==&nbsp;'production',&nbsp;//&nbsp;在非生产环境下,使用严格模式})官方文档地址
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答