美文网首页
Vue.set() 和this.$set()

Vue.set() 和this.$set()

作者: 梦梦_087a | 来源:发表于2019-08-22 17:31 被阅读0次

这两个方法其实是差不多的,可以说几乎是一样的,只不过set是绑定在Vue构造函数上,$set()是绑定在Vue原型上的。

我们会遇到一个情况就是在data中定义的数据更改后,会进行页面渲染,但是在data中没定义的数据更改是不会重新渲染页面的,例如: data: {  obj:{a:3}}  ,   this.obj.a=4 会重新渲染,this.obj.b=2. 这种是不会重新渲染在页面上的。

这时候就需要this.$set(this.obj,'b',2) .这样可以解决不重新渲染的问题。

源码角度:

数组情况:

我们可以看到,Vue的数组里指向的是一个对象,这个对象里面有splice等方法,只有这里面的7个方法才能触发渲染,对象里的__proto__才是指向Array 的对象。所以当我们直接更改数组的时候不会渲染页面.

使用set方法后其实就是调用了Vue数组中的splice,所以触发了渲染。

对象情况:

对象的时候,data中定义的他会收集依赖,然后触发的时候,重新渲染页面,没定义的就收集不到依赖。

相关文章

  • vue强制更新

    使用update this.$forceUpdate(),强制视图更新 用vue.set this.$set(th...

  • Vue.set()和this.$set()

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新...

  • Vue.set() 和this.$set()

    这两个方法其实是差不多的,可以说几乎是一样的,只不过set是绑定在Vue构造函数上,$set()是绑定在Vue原型...

  • Vue.set和Vue数据监测

    Vue.set this.$set(this.student,'添加的属性','添加的属性值') Vue数据监测 ...

  • Vue.set()实现数据动态响应

    this.$set()和Vue.set()本质方法一样,前者可以用在methods中使用。 在vue里面,我们操作...

  • Vue.set()实现数据动态响应!!!

    this.$set()和Vue.set()本质方法一样,前者可以用在methods中使用。 在vue里面,我们操作...

  • 深入理解Vue的数据响应式

    【目录】一、Vue对data做了什么?二、数据响应式三、Vue.set和this.$set 【正文】在学习Vue的...

  • vue.set/this.$set

    vue项目中,几个表格分开展示,但是展示的内容都一样(不展示的内容有区别),为了省事儿,就给封装了个子组件,但是在...

  • Vue.set()和this.$set()区别

    Vue.set()的源码import { set } from '../observer/index'...Vue...

  • Vue.set()和this.$set()介绍

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新...

网友评论

      本文标题:Vue.set() 和this.$set()

      本文链接:https://www.haomeiwen.com/subject/ebgkmqtx.html