【web前端】数据响应式

WEB前端开发社区 昨天

1、概念

数据响应式,可以说是一套能够侦测到数据变化,从而可以根据这个变化做一些跟变化数据相关处理的机制。比如有一个数据
var obj={a:3,b:6}
obj.a 值改为5了,我们可以通过数据响应式,做相关obj.a 值更新逻辑处理;删除obj.b 了,做删除逻辑处理等。

2、实现

现在使用ES6 的 代理 Proxy 和反射 Reflect 简单实现数据的数据响应式
//数据响应式的实现function reactive(obj){return new Proxy(obj,{        get(target,key){let res = Reflect.get(target,key);console.log('Proxy.get --> ',key,' --> 侦测到数据被使用')return typeof res ==='object' ? reactive(res) : res;        },        set(target,key,value){let res = Reflect.set(target,key,value);console.log('Proxy.set --> ',key,' --> 侦测到数据变化,可以做点什么事情')return res;        },        deleteProperty(target,key){let res = Reflect.deleteProperty(target,key);console.log('Proxy.deleteProperty --> ',key,' --> 侦测到数据变化,可以做点什么事情')return res;        }    })}//测试var obj = reactive({'a':3});obj.aobj.a=5obj.b=6delete obj.aobj.c={ d:666};obj.c.d
控制台打印信息
PS E:\workspace\reactiveDemo> node indexProxy.get -->  a  --> 侦测到数据被使用Proxy.set -->  a  --> 侦测到数据变化,可以做点什么事情Proxy.set -->  b  --> 侦测到数据变化,可以做点什么事情Proxy.deleteProperty -->  a  --> 侦测到数据变化,可以做点什么事情Proxy.set -->  c  --> 侦测到数据变化,可以做点什么事情Proxy.get -->  c  --> 侦测到数据被使用Proxy.get -->  d  --> 侦测到数据被使用PS E:\
(0)

相关推荐

  • VUE3.0-手写实现组合API

    VUE3.0-手写实现组合API

  • 对象(数组)的深克隆和浅克隆(头条)

    let obj = { a: 100, b: [10, 20, 30], c: { x: 10 }, d: /^\d $/ }; // 1.浅克隆,obj和obj2是没有关系的,第二级的对象还是引用的 ...

  • js逆向之另类思路扣代码

    海绵 日常学python 经常js分析的人来说有些网站检测浏览器指纹是很常见的事,但是我们一点一点分析是很费时间,费脑筋的. 我们扣代码的结果是我们要调用他的加密或解密或某个值的算法,当我们把他的算法 ...

  • 一探 Vue 数据响应式原理

    本文写于 2020 年 8 月 5 日 相信在很多新人第一次使用 Vue 这种框架的时候,就会被其修改数据便自动更新视图的操作所震撼. Vue 的文档中也这么写道: Vue 最独特的特性之一,是其非侵 ...

  • Web前端新手怎么入门 如何用CSS做响应式布局

    Web前端新手怎么入门?如何用CSS做响应式布局?很多Web前端新手对响应式布局和自适应布局的概念以及制作方法分不清,简单来说响应式布局相当于流动网格布局,而自适应布局等于使用固定分割点来进行布局.接 ...

  • WEB前端第五十九课——时间戳、数据交互小案例

    WEB前端第五十九课——时间戳、数据交互小案例

  • 移动WEB开发-响应式布局

    WEB前端开发社区 6天前 1.0 响应式开发原理 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 设备的划分情况: 小于768的为超小屏幕( ...

  • 十大HTML5响应式Web开发框架总结

    在这里小编为大家总结了一些HTML5响应式Web开发框架,没有最好,只有更合适,每个人都可以根据自己的工作需求和项目选择不同的开发框架. 1)GroundworkCSS2 GroundworkCSS2 ...

  • [前端]GOFLY项目-响应式登录页的设计和实现

    登录界面如果要实现响应式 , 需要注意宽度的设置和media query的使用 宽度一般都是按百分比设置,当页面中百分比也满足不了的时候,可以使用media query区分出当前屏幕的宽度 根据不同的 ...

  • Web端响应式设计规范

    本文5500字上下,反复校对8遍以上,初步阅读完大概需要22分钟,若是深入理解并完全吸收则建议"先收藏再反复的品,细细的品".希望对各位朋友有所帮助,不足之处望校正,祝阅读愉快. ...

  • WEB前端第六十二课——自封装Ajax、跨域、分页

    WEB前端第六十二课——自封装Ajax、跨域、分页

  • WEB前端第六十课——原生Ajax与HTTP协议

    WEB前端第六十课——原生Ajax与HTTP协议