加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 建站 > 正文

茶余饭后聊聊 Vue3.0 响应式数据那些事儿

发布时间:2019-11-04 15:49:10 所属栏目:建站 来源:佚名
导读:副标题#e# 别再更新了,实在是学不动了这句话道出了多少前端开发者的心声,不幸的是 Vue 的作者在国庆区间发布了 Vue3.0 的 pre-Aplha 版本,这意味着 Vue3.0 快要和我们见面了。既来之则安之,扶我起来我要开始讲了。Vue3.0 为了达到更快、更

那么 Vue3.0 怎么又走回头路去实现了数组的全面监听了呢?答案就是 Proxy 和 Reflet 这一对原生 CP 的出现,Vue3.0 使用 Proxy 作为响应式数据实现的核心,用 Proxy 返回一个代理对象,通过代理对象来收集依赖和触发更新。大概的原理像这段代码一样:

  1. const arr = ["2019","云","栖","音","乐","节"]; 
  2. let ProxyArray = new Proxy(arr,{ 
  3.     get:function(target, name, value, receiver) { 
  4.         console.log("取值") 
  5.         return Reflect.get(target,name); 
  6.     }, 
  7.     set: function(target, name, value, receiver) { 
  8.        console.log("赋值") 
  9.        Reflect.set(target,name, value, receiver);; 
  10.     } 
  11.  }) 
  12.  const index = ProxyArray[0]; 
  13.  //取值 
  14.  ProxyArray[0]="2050" 
  15.  //赋值 

效果和 Object.defineProperty 一样一样的,又显得清新脱俗有没有?而且 Proxy 只要是对象都能代理,后面还会提到。当然 Vue3.0 是虽然有了新欢,但也没忘记旧爱,对于在之前版本中数组的几种方法的监听还是照样支持的。

惰性监听

什么是"惰性监听"?

简单讲就是"偷懒",开发者可以选择性的生成可观察对象。在平时的开发中常有这样的场景,一些页面上的数据在页面的整个生命周期中是不会变化的,这时这部分数据不需要具备响应式能力,这在 Vue3.0 以前是没有选择余地的,所有在模板中使用到的数据都需要在 data 中定义,组件实例在初始化的时候会将 data 整个对象变为可观察对象。

惰性监听有什么好处?

  • 提高了组件实例初始化速度

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读