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();
  },
}