vue中的this.$set()

今天在遇到一个问题,在可编辑表格中,输入一个值,要自动改变与它同一行的另一个值,但是不管写只有console.log打印改变了值,界面上就是不会同步改变。
image

然后就找到this.$set()这个方法

简单来说就是,发现给对象数组加了一个属性,在控制台能打印出来,但是却没有更新到视图上时,也许这个时候就需要用到this.$set()这个方法了

官方解释:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = 'hi')

this.$set()的使用方法

调用方法:this.$set( target, key, value )

  • target:要更改的数据源(可以是对象或者数组)

  • key:要更改的具体数据

  • value :重新赋的值

很多人是因为新加的属性没有在页面显示。

原因是:
由于受JavaScript的限制,vue.js不能监听对象属性的添加和删除,因为在vue组件初始化的过程中,会调用getter和setter方法,所以该属性必须是存在在data中,视图层才会响应该数据的变化

posted @ 2021-10-22 21:34  嘿!那个姑娘  阅读(276)  评论(0编辑  收藏  举报