网易首页 > 网易号 > 正文 申请入驻

你不知道的知识点都是重点——程序员必看

0
分享至

1、Vue 3.0 性能提升主要是通过哪几方面体现的?

1.响应式系统提升

vue2在初始化的时候,对data中的每个属性使用definepropery调用getter和setter使之变为响应式对象。如果属性值为对象,还会递

归调用defineproperty使之变为响应式对象。

vue3使用proxy对象重写响应式。proxy的性能本来比defineproperty好,proxy可以拦截属性的访问、赋值、删除等操作,不需要初始化的时候遍历所有属性,另外有多层属性嵌套的话,只有访问某个属性的时候,才会递归处理下一级的属性。

优势:

  • 可以监听动态新增的属性;
  • 可以监听删除的属性 ;
  • 可以监听数组的索引和 length 属性;

2. 编译优化

优化编译和重写虚拟dom,让首次渲染和更新dom性能有更大的提升 vue2 通过标记静态根节点,优化 diff 算法 vue3 标记和提升所有静态根节点,diff 的时候只比较动态节点内容

Fragments, 模板里面不用创建唯一根节点,可以直接放同级标签和文本内容

静态提升

patch flag, 跳过静态节点,直接对比动态节点,缓存事件处理函数

3. 源码体积的优化

vue3移除了一些不常用的api,例如:inline-template、filter等 使用tree-shaking

2. Composition Api 与 Vue 2.x使用的Options Api 有什么区别?

Options Api

包含一个描述组件选项(data、methods、props等)的对象 options;

API开发复杂组件,同一个功能逻辑的代码被拆分到不同选项 ;

使用mixin重用公用代码,也有问题:命名冲突,数据来源不清晰;

composition Api

vue3 新增的一组 api,它是基于函数的 api,可以更灵活的组织组件的逻辑。

解决options api在大型项目中,options api不好拆分和重用的问题。

3. Proxy 相对于 Object.defineProperty

有哪些优点?

proxy的性能本来比defineproperty好,proxy可以拦截属性的访问、赋值、删除等操作,不需要初始化的时候遍历所有属性,另外有多层属性嵌套的话,只有访问某个属性的时候,才会递归处理下一级的属性。

  • 可以* 监听数组变化
  • 可以劫持整个对象
  • 操作时不是对原对象操作,是 new Proxy 返回的一个新对象
  • 可以劫持的操作有 13 种

4. Vue 3.0 在编译方面有哪些优化?

vue.js 3.x中标记和提升所有的静态节点,diff的时候只需要对比动态节点内容;

Fragments(升级vetur插件):

template中不需要唯一根节点,可以直接放文本或者同级标签

静态提升(hoistStatic),当使用 hoistStatic 时,所有静态的节点都被提升到 render 方法之外。只会在应用启动的时候被创建一次,之后使用只需要应用提取的静态节点,随着每次的渲染被不停的复用。

patch flag, 在动态标签末尾加上相应的标记,只能带 patchFlag 的节点才被认为是动态的元素,会被追踪属性的修改,能快速的找到动态节点,而不用逐个逐层遍历,提高了虚拟dom diff的性能。

缓存事件处理函数cacheHandler,避免每次触发都要重新生成全新的function去更新之前的函数 tree shaking 通过摇树优化核心库体积,减少不必要的代码量

5. Vue.js 3.0 响应式系统的实现原理?

1. reactive

设置对象为响应式对象。接收一个参数,判断这参数是否是对象。不是对象则直接返回这个参数,不做响应式处理。创建拦截器handerler,设置get/set/deleteproperty。

get

  • 收集依赖(track);
  • 如果当前 key 的值是对象,则为当前 key 的对
  • 象创建拦截器 handler, 设置 get/set/deleteProperty;

如果当前的 key 的值不是对象,则返回当前 key 的值。

set

设置的新值和老值不相等时,更新为新值,并触发更新(trigger)。

deleteProperty 当前对象有这个 key 的时候,删除这个 key 并触发更新(trigger)。

2. effect

接收一个函数作为参数。作用是:访问响应式对象属性时去收集依赖

3. track

接收两个参数:target 和 key

-如果没有 activeEffect,则说明没有创建 effect 依赖

-如果有 activeEffect,则去判断 WeakMap 集合中是否有 target 属性

-WeakMap 集合中没有 target 属性,则 set(target, (depsMap = new Map()))

-WeakMap 集合中有 target 属性,则判断 target 属性的 map 值的 depsMap 中是否有 key 属性

-depsMap 中没有 key 属性,则 set(key, (dep = new Set())) -depsMap 中有 key 属性,则添加这个 activeEffect

4.trigger

判断 WeakMap 中是否有 target 属性,WeakMap 中有 target 属性,则判断 target 属性的 map 值中是否有 key 属性,有的话循环触发收集的 effect()。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
海港vs国安7月5日12:00开票,票价最低80元,最高380元

海港vs国安7月5日12:00开票,票价最低80元,最高380元

懂球帝
2024-07-04 21:58:09
“第16次高考”唐尚珺:想尽快上岸!已完成志愿填报,全部服从调剂

“第16次高考”唐尚珺:想尽快上岸!已完成志愿填报,全部服从调剂

鲁中晨报
2024-07-04 09:15:10
上海这一夜,“科技脸”和“自然脸”差距有多大?自然老去赢麻了

上海这一夜,“科技脸”和“自然脸”差距有多大?自然老去赢麻了

可以鸭文史君
2024-07-04 10:42:37
58岁大妈愿意过夫妻生活:每个月要3000块钱,漂亮是她的资本。

58岁大妈愿意过夫妻生活:每个月要3000块钱,漂亮是她的资本。

娱乐洞察点点
2024-05-29 22:28:14
脸僵成这样,这不是砸自己饭碗吗?

脸僵成这样,这不是砸自己饭碗吗?

8号风曝
2024-07-03 21:39:35
“我们将竭尽全力,确保人民币…”

“我们将竭尽全力,确保人民币…”

观察者网
2024-07-04 18:04:09
张凌赫新剧表现但凡拉胯一点,都压不住这两位绝帅零零后男配

张凌赫新剧表现但凡拉胯一点,都压不住这两位绝帅零零后男配

有仁有娱
2024-07-03 11:53:44
前行政长官林郑月娥,退休后因被制裁,沦落到只能在香港租房住?

前行政长官林郑月娥,退休后因被制裁,沦落到只能在香港租房住?

叹为观止易
2024-06-20 10:57:33
赛力斯:华为问界商标价值超100亿!华为手里再无整车品牌,智界、享界品牌所属权转至奇瑞、北汽

赛力斯:华为问界商标价值超100亿!华为手里再无整车品牌,智界、享界品牌所属权转至奇瑞、北汽

和讯网
2024-07-04 11:13:17
国内六大"名模":吕燕最丑,何穗最骚,她用身体为自己博得一线地位

国内六大"名模":吕燕最丑,何穗最骚,她用身体为自己博得一线地位

凤幻洋
2024-05-25 09:24:00
秦岭最神秘的19号别墅,建成十年后无人敢拆,749局:给我使劲挖

秦岭最神秘的19号别墅,建成十年后无人敢拆,749局:给我使劲挖

麦大人
2023-10-10 18:17:44
大连楼市全军覆灭,大连楼市海边某大平层房价跌破20000元一平

大连楼市全军覆灭,大连楼市海边某大平层房价跌破20000元一平

有事问彭叔
2024-07-04 17:20:37
拿刀和拿枪的差距:中国歼16和周边重型战机相对比,哪个更强大?

拿刀和拿枪的差距:中国歼16和周边重型战机相对比,哪个更强大?

慎独赢
2024-06-29 22:00:02
刚刚!重磅利好!

刚刚!重磅利好!

券商中国
2024-07-04 07:47:20
无缘首进温网32强!王雅繁0-2遭前美网亚军横扫 仅赢四局

无缘首进温网32强!王雅繁0-2遭前美网亚军横扫 仅赢四局

醉卧浮生
2024-07-04 19:29:59
35岁马龙巴黎谢幕战,退役后执教王曼昱为上选,世界第二重回巅峰

35岁马龙巴黎谢幕战,退役后执教王曼昱为上选,世界第二重回巅峰

骑马寺的少年
2024-07-04 15:52:20
回村发展8年让我感悟:能在城里挣两三千工资,真不能回农村务农

回村发展8年让我感悟:能在城里挣两三千工资,真不能回农村务农

老张说你听
2024-07-02 16:05:03
当一个经济体没人愿意投资,那就不完全是信心的问题

当一个经济体没人愿意投资,那就不完全是信心的问题

永不出场的戈多
2024-06-30 10:04:30
上海东方医院出现一只披着羊皮的狼——孙贵新

上海东方医院出现一只披着羊皮的狼——孙贵新

荷兰豆爱健康
2024-07-04 21:13:59
普京:俄罗斯始终支持俄乌谈判并欢迎调停

普京:俄罗斯始终支持俄乌谈判并欢迎调停

界面新闻
2024-07-04 23:35:28
2024-07-05 02:42:44
爱创乐育
爱创乐育
努力成为别人心中的大神
30文章数 134关注度
往期回顾 全部

科技要闻

何小鹏第三次闯入险滩

头条要闻

国家体育总局原副局长蔡振华:这一生我问心无愧

头条要闻

国家体育总局原副局长蔡振华:这一生我问心无愧

体育要闻

我不用当体育老师了,我去踢欧洲杯了!

娱乐要闻

胡歌打败范伟,又一个内娱黑幕?

财经要闻

万科系互金平台爆雷?不少万科员工被坑

汽车要闻

限时优惠至高2.4万 新款卡罗拉售11.68万起

态度原创

艺术
健康
数码
时尚
本地

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

人类为何至今无法攻克渐冻症?

数码要闻

AMD 高管:索尼 PS4 的成功拯救了 AMD

用表情包谈恋爱,你是高手还是想分手?

本地新闻

云游中国 | 走进安塞,寻觅黄土高原文化记忆

无障碍浏览 进入关怀版