前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue.set()与this.$set()用法与区别

vue.set()与this.$set()用法与区别

原创
作者头像
can4hou6joeng4
发布2023-11-29 17:17:48
1030
发布2023-11-29 17:17:48
举报

背景

--

vue初始化实例对象的时候会把属性转为setter/getter,这样数据才会是动态响应的(即data中的数据是动态响应的),vue才能够监听到属性的添加、删除、修改(受ES5的限制)

原理

--

vue.set源码

代码语言:javascript
复制
import { set } from '../observer/index'
...
Vue.set = set
...

this.$set源码

代码语言:javascript
复制
import { set } from '../observer/index'
...
Vue.prototype.$set = set
...

区别

--

vue.set

  • vue.set可以设置实例创建之后添加的新的属性(即在data中未声明,vue实例创建时在beforeCreate之后,created之前,监听data对象数据变化,并初始化vue内部事件)
  • vue.set不允许添加跟级响应式属性,只可以向嵌套对象添加响应式属性
  • vue.set是将set函数绑定在vue构造函数 this.$set
  • this.$set只能设置实例创建后存在的数据(数据已经在data中)
  • 将set函数绑定在vue原型上

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档