proxy.js,javascript proxy

  proxy.js,javascript proxy

  本文给大家带来了一些关于javascript的知识,主要介绍了JS代理对象Proxy的简单数据驱动视图。有需要的朋友可以借鉴一下。下面就来看看吧,希望对你有帮助。

  【相关推荐:javascript视频教程,web前端】

  JQuery,它是事件驱动型的,也就是当一条数据和DOM中的某个东西有关联的时候,我需要操作DOM在这条数据发生变化之后进行同步:

  div= data data/div var data= data

  //数据通过某种事件发生了变化

  数据=新数据

  $(#data )。text=data在简单的交互中,这种方法看起来还是很方便的,但是一旦交互庞大,代码就臃肿了。

  而在我即将毕业的时候,Angular,Vue,React React rose,我们发现了一条新的路,——数据驱动。也就是说,通过DOM和数据的“绑定”,我们可以直接修改数据,DOM的内容直接发生了变化。

  Div{{data}}/divvar data= data

  //.以某种方式被束缚。

  data= new data DOM中的内容直接变成了新数据。用起来非常方便,代码也很简洁,在当时看来很神奇。

  不同的数据驱动框架有不同的绑定原理和流程,而且都很复杂。不过今天我们简化一下,用JS代理对象来实现数据驱动。(对了,Vue3的响应式数据就是用的这个原理。当然,会比今天的例子复杂得多。)

  

Proxy对象是什么

  ProxyObject用于为对象创建代理,从而实现对基本操作(如属性查找、赋值、枚举、函数调用等)的拦截和定制。).具体使用方法是:

  新代理(对象到代理,事件对象到代理)可以代理以下事件:

  事件描述get read属性set property set property delete operator ownKeysgetWonPropertyNames方法和getownpropertymolsstructnew operator definerpropertydefineproperty方法getOwnPropertyDescript orgetownpropertydescript方法preventextensions spreadtextensions方法Isextendible方法setPrototypeOfsetPrototypeOf方法(即设置。_ _ proto _ _)getprototype of getPrototypeOf方法(即采取。__proto__)

使用Proxy写一个简单的数据驱动视图

  现在我们知道了Proxy的基本用法,可以用它来代理对象的setter,实现数据驱动。

  首先,定义一个与数据具有相同ID的DOM元素:

  div id=名字/div

  Div id=age/div为数据设置代理,代理其setter,并在其中操作DOM:

  var数据={

  名字: ,

  年龄:0岁

  }

  var p_data=新代理(数据,{

  set: function (obj,prop,newval) {

  document.getElementById(prop)。innerText=newval

  obj[prop]=new val;//不要忘记实现原来的逻辑

  返回truesetter代理的请求,处理成功后返回true。

  }

  })之后设置初始值和相关交互,注意操作的是代理p_data而不是data:

  P_data.firstName=姓名将在两秒钟内显示…

  p_data.age=25

  setTimeout(()={

  P_data.firstName=林雨辰

  }, 2000)

  document.getElementById(grow )。onclick=function() {

  p_data.age

  }这样就实现了数据驱动。只要任意修改p_data的属性值,就可以直接改变DOM的内容:

  射流研究…

  var数据={

  名字: ,

  年龄:0岁

  }

  var p_data=新代理(数据,{

  set: function (obj,prop,newval) {

  document.getElementById(prop)。innerText=newval

  obj[prop]=new val;

  返回true

  }

  })

  P_data.firstName=姓名将在两秒钟内显示…

  p_data.age=25

  setTimeout(()={

  P_data.firstName=林雨辰

  }, 2000)

  document.getElementById(grow )。onclick=function() {

  p_data.age

  }【相关推荐:javascript视频教程,web前端】以上是JavaScript代理对象Proxy的简单数据驱动视图的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: