JavaScript 进阶 31 -- 简单来说下vue.js 数据监测observe的实现的原理

本文探讨了Vue.js中实现响应式原理的关键——observer。通过for...in循环和defineProperty方法,为对象属性添加get和set,实现数据变化时页面视图的同步更新。递归调用observer确保深层对象属性也被监听。当对象属性值改变时,通过set方法处理新值可能为对象的情况,确保所有属性都被正确地监听。
摘要由CSDN通过智能技术生成

这篇文章是接上一篇继续来总结一下关于数据监测 observer 实现响应式的原理。

响应式的原理:

只要要数据发生改变,页面视图就发生变化

简单来说 就是一个方法,里面使用for in循环,分别为对象属性添加 get() 和 set() 方法,来实现对数据监测,这就要用到上一篇文章中提到的 defineProperty 对象自定义属性

直接看段代码:

let obj ={
    name:'tom',
    age:22,
    company:{
        address:'北京'
    }
};
obj.name = 'lily'

如果想实现在改变数据的同时,页面视图或者用到次数据的地方也能够做出相应,所以就要对这个数据做观察,就需要重新定义属性,使用 defineProperty()方法

let obj ={
    name:'tom',
    age:22,
    company:{
        address:'北京'
    }
};
//观察数据
function observe(obj){
    for(let key in obj){
        let val = obj[key];//将原有的值先存到第三方变量中
        Object.definePropert
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值