vue-vuex-state响应式


  vuex的store对象的state是响应式,凡是预先在state中定义的状态,都会被加入到响应式系统中,当状态发生了变化,所有引用状态的vue文件的template都会随之发生变化,做到响应式的功能。刚才也说了,提前定义好的会被加入到响应式系统中,那后面追加的属性或对象能不能加入到响应式系统中呢?答案是 如果按照指定的方式来添加和删除属性,是可以做到响应式的。

  比如现在我要添加一个新属性height,用两种方式添加,如下:

  方式1:此种方式能添加state中对象的属性,但无法加入到响应式系统中,即页面上不会显示出来,实际上确实存在了这个属性

  mutations: {
    addheight(state){
      state.stus[0]['height'] = 168
    }
  }

  方式2:此方式可以让属性加入到响应式系统中

  mutations: {
    addheight(state){
      Vue.set(state.stus[1],'height',178) //参数一为对象,参数二为key,参数为value
    }
  }

  说完添加属性,再说下删除吧,想要删除属性并加入响应式系统,如下方式:

  mutations: {
    delheight(state){
      Vue.delete(state.stus[1],'height') //参数一为对象,参数二是key
    }
  }

  来个总图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM