Vue中给data中的对象属性添加一个新的属性时会发生什么,如何解决(($set()))
-
{{value}}
点击button会发现, obj.b 已经成功添加,但是视图并未刷新:
文章图片
文章图片
原因在于在Vue实例创建时, obj.b 并未声明,因此就没有被Vue转换为响应式的属性,自然就不会触发视图的更新,这时就需要使用Vue的全局api—— $set():
addObjB () {
// this.obj.b = 'obj.b'
this.$set(this.obj, 'b', 'obj.b')
console.log(this.obj)
}
【Vue中给data中的对象属性添加一个新的属性时会发生什么,如何解决(($set()))】$set() 方法相当于手动的去把 obj.b 处理成一个响应式的属性,此时视图也会跟着改变了
文章图片
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- 2020-04-07vue中Axios的封装和API接口的管理
- 数据库总结语句
- VueX--VUE核心插件
- vue组件中为何data必须是一个函数()
- 用npm发布一个包的教程并编写一个vue的插件发布
- R|R for data Science(六)(readr 进行数据导入)
- vuex|vuex 基础结构
- Vue源码分析—响应式原理(二)
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)