Vue--数据代理

Object.defineProperty

const person = {}; // 创建一个新对象

person.name='xusx'

// 通过 defineProperty 使用数据描述符添加对象属性的示例

Object.defineProperty(person, "age", {

value: 37, // 默认值

writable: true, // 不可写 默认false

enumerable: true, // 是否可以枚举 默认false

configurable: true // 控制属性可否被删除

});
数据代理:get\set方法

person实际的属性值为xusx对象的属性值

复制代码
		var xusx={}
		xusx.age=30
		var person={}
		person.name="xysx"
		Object.defineProperty(person,'age',{
			get(){
				return xusx.age
			},
			set(){
				 xusx.age
			}
		})

Vue中的数据代理


Vue对象data在其属性中为_data

总结

1、通过Vue对象来代理data对象中属性的操作(读\写)

2、通过Object.defineProperty ()把data对象中所有的属性添加到Vue上,为每一个添加到Vue上的属性,都制定一个getter/setter。去操作(读、写)data中对应的属性。

数据监视

  • 1、vue会监视data中所有层次的数据
  • 2、 通过setter实现监视,在new Vue就要传入要检测的数据
  • 3、如果需给后添加的数据所响应式处理,则使用如下api:
    Vue.set(target,propertyName,value)
    注:Vue.set无法给根数据添加属性,即data下添加熟悉


相关推荐
架构师汤师爷13 小时前
一文彻底搞懂 OpenClaw 的架构设计与运行原理(万字图文)
前端·agent
苑若轻航13 小时前
防抖和节流:解决高频事件性能
前端
小黑的铁粉13 小时前
什么是事件循环?调用堆栈和任务队列之间有什么区别?
前端·javascript
小黑的铁粉13 小时前
常见的内存泄漏有哪些?
前端·javascript
喝水的长颈鹿13 小时前
JavaScript 基础入门
前端
喝咖啡的女孩13 小时前
call、apply、bind 原理与实现
前端
雨落Re13 小时前
从设计到开发,过年我用十天使用AI搭建了一个完整的博客系统
前端·后端
追风筝的人er13 小时前
企业管理系统如何实现自定义首页与千人千面?RuoYi Office 给出了完整方案
vue.js·spring boot·spring cloud
冴羽13 小时前
100s 带你了解 Bun 为什么这么火
前端·node.js·bun
Sylvia33.13 小时前
火星数据:解构斯诺克每一杆进攻背后的数字语言
java·前端·python·数据挖掘·数据分析