【JavaScript_1】Vue2中Object.defineProperty响应式实现原理

Vue中的响应式是指,data()中的数据一旦发生了改变,页面就会自动进行相应的改变,给予用户一个网页在随着用户操作进行“响应式”更新的感受。

所以需要解决的就是,如何监听到数据的改变呢?因为这样在能在数据改变的一瞬间去做出一些更新页面的操作呀,答案就是用Object.defineProperty()来解决。

Object.defineProperty()是JavaScript中提供的一个接口,用来给一个对象新增一个属性并定义属性描述符,或是对对象的一个已有属性更改值、定义属性描述符,可以接收“对象,属性名,属性描述符”三个参数。Object.defineProperty()的官网讲解

1.如何实现简单的响应式

以下面代码为例:
【下面代码的目的在于,如何让data这个对象中属性的修改被监听到,即如何把data变为响应式的

const data = {
   };
let name = 'Origin Name';

Object.defineProperty(data, 'name', {
   
	get: function() {
   
		console.log('get: 已监听到data的name属性被访问');
		// 返回name值
		return name;
	},
	set: function(newName
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值