当前位置:   article > 正文

【JavaScript_1】Vue2中Object.defineProperty响应式实现原理_definepropery是如何给数组设置响应式的

definepropery是如何给数组设置响应式的

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/258997
推荐阅读
相关标签
  

闽ICP备14008679号