Vue.set方法

互联网 2022/6/27 23:52:53

如果在实例创建之后添加新的属性到实例上,它不会触发视图更新 因此比如我们修改一个数组其中的一个值,或者添加一条数据时,数据变化了,但是视图没有渲染。 例如:<div v-for="item in items" :key="item">{{item}}</div><button @cl…

如果在实例创建之后添加新的属性到实例上,它不会触发视图更新

因此比如我们修改一个数组其中的一个值,或者添加一条数据时,数据变化了,但是视图没有渲染。

例如:

  <div v-for="item in items" :key="item">{{item}}</div>   <button @click="add">添加</button>  事件:  add() {       this.items[1] = 2;       console.log(this.items);     }, 结果: 视图与vue检测工具上的数据都没有变,但是控制台能打印出修改后的数据

解决办法:

Vue提供了两种方法去解决

1、Vue.set( )

2、this.$set( )

两者区别在于,组件中可以直接使用this.$set( ),如果使用Vue.set( ),就要引入Vue

参数1: 要修改的对象 (数组|对象)
参数2: 属性    (数组的属性是下标|对象的属性是key(属性名))
参数3: 修改的值  (属性的值是啥)
返回值:已经修改好的值

 add() {     this.$set(this.items, 1, 2)       console.log(this.items);     },     修改后的结果  

 

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[Vue.set方法]http://www.zyiz.net/tech/detail-331420.html

赞(0)
关注微信小程序
程序员编程王-随时随地学编程

扫描二维码或查找【程序员编程王】

可以随时随地学编程啦!

技术文章导航 更多>