vuex中state数据跟新页面不刷新问题
state中的值是数组对象类型时, 去直接修改/更新state对象中的这个值的属性,没错state中的值是修改到了,但是Vuex监测不到的,所以很简单的方法就是整个对象去替换/赋值,这样Vuex就能监测到state的变化,同事getters也会跟着变化了
赋值之后不会触发getter方法刷新,修改为深拷贝之后即可触发getter刷新
简单的处理方法是,1. 将对象或数组转换成字符串,再转换回来,赋值就解决这个问题了
ADD_MUTATIONS(state, payload){ // json转换是为了页面渲染,state的数据类型包含对象时,可能不会渲染 state.products = JSON.parse(JSON.stringify(state.products)) state.products[payload].num++ localStorage.setItem('products', JSON.stringify(state.products)) },
2.使用vue自带的方法,强制渲染页面
methods: { add(index) { //调用vuex actions this.add_actions(index); // 强制渲染页面,采用第一种json转换后可以放弃 this.$forceUpdate(); }, }