Vue.js 比较重要知识点总结五

2023-06-14 0 857

简述

• Vue3 操控性提高主要就充分体现在马雷科各方面?

• 你对 Vue 工程项目做过甚么样强化

• 有关交互式 DOM

• Vite是甚么

Vue3 操控性提高主要就充分体现在马雷科各方面?

Vue.js 比较重要知识点总结五

• 积极响应式操控性提高 [defineproperty、proxy]

• 校对强化

• 强化校对和改写交互式dom

• Fragments, 模版里头不必建立惟一根结点,能间接放同价位条码和文档文本

• 静态提高

• patch flag, 埃唐佩县静态结点,间接对照静态结点

• 内存阿提斯鲁夫尔谷表达式

• 源代码表面积的强化

• vue3移除许多不常见的api

• 采用tree-shaking

QQ搜寻“后端发烧友“, 戳我 查阅 。

你对 Vue 工程项目做过甚么样强化

Vue.js 比较重要知识点总结五

代码层面的强化

• v-if 和 v-show 区分采用场景

• computed 和 watch 区分采用场景

• v-for 遍历必须为 item 添加 key,且避免同时采用 v-if

• ⻓列表操控性强化

• 事件的销毁

• 图片资源懒加载

• 路由懒加载

• 第三方插件的按需引入

• 强化无限列表操控性

• 服务端渲染 SSR or 预渲染

Webpack 层面的强化

• Webpack 对图片进行压缩

• 减少 ES6 转为 ES5 的冗余代码

• 提取公共代码

• 模版预校对

• 提取组件的 CSS

• 强化 SourceMap

• 构建结果输出分析

• Vue 工程项目的校对强化

基础的 Web 技术的强化

• 开启 gzip 压缩

• 浏览器内存

• CDN 的采用

• 采用 Chrome Performance 查找操控性瓶颈

有关交互式 DOM

交互式 DOM是甚么

Vue.js 比较重要知识点总结五

交互式 dom 是相对于浏览器所渲染出来的真实 dom 的,在react ,vue等技术出现之前,我们要改变页面 展示的文本只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到 更新 ui 的目的。

这种方式相当消耗计算资源,因为每次查询 dom 几乎都需要遍历整颗 dom 树,如果建立一个与 dom 树对应的交互式 dom 对象(js 对象),以对象嵌套的方式来表示 dom 树,那么每次 dom 的更改就变成 了 js 对象的属性的更改,这样一来就能查找 js 对象的属性变化要比查询 dom 树的操控性开销小。

为甚么操作 DOM 操控性开销大?

其实并不是查询 dom 树操控性开销大而是 dom 树的实现模块和 js 模块是分开的这些跨模块的通讯增加了 成本,以及 dom 操作引起的浏览器的回流和重绘,使得操控性开销巨大,原本在 pc 端是没有操控性问题的,因为 pc 的计算能力强,但是随着移动端的发展,越来越多的网页在智能手机上运行,而手机的操控性 参差不齐,会有操控性问题。

新技术如何解决操控性问题?

angular, react ,vue 等框架的出现就是为了解决这个问题的。

他们的思想是**每次更新 dom 都尽量避免刷新整个页面**,而是有针对性的去刷新那被更改的一部分,来释 放掉被无效渲染占用的 gpu, cup 操控性。

angular

angular 采用的机制是 脏值检测查机制所有采用了 ng 指令的 scope data 和 {{}} 语法的 scope data 都会被加入脏检测的队列

vue

vue 采用的是交互式 dom通过改写 setter , getter 实现观察者监听 data 属性的变化生成新的 交互式 dom 通过 h 表达式建立真实 dom 替换掉dom树上对应的旧 dom。

react

react 也是通过交互式 dom和 setState 更改 data 生成新的交互式 dom 以及 diff 算法来计算和生 成需要替换的 dom 做到局部更新的。

交互式 DOM 实例

Vue.js 比较重要知识点总结五

我们来尝试实现一个解析交互式 dom 的 render 表达式。

如何解析这个交互式 DOM 呢?

Vue.js 比较重要知识点总结五Vue.js 比较重要知识点总结五

能将这段代码复制到浏览器测试一下。

const dom = render(HelloWorld)

document.body.append(dom)

交互式 DOM 优缺点

优点:

• 保证操控性下限

框架的交互式 DOM 需要适配任何上层 API 可能产生的操作,它的许多 DOM 操作的 实现必须是普适的,所以它的操控性并不是最优的;但是比起粗暴的 DOM 操作操控性要好很多,因此 框架的交互式 DOM 至少能保证在你不需要手动强化的情况下,依然能提供还不错的操控性,即保 证操控性的下限;

• 无需手动操作 DOM:

我们不再需要手动去操作 DOM,只需要写好 View-Model 的代码逻辑,框 架会根据交互式 DOM 和 数据双向绑定,帮我们以可预期的方式更新视图,极大提高我们的开发效 率;

• 跨平台:

交互式 DOM 本质上是 JavaScript 对象,⽽ DOM 与平台强相关,相比之下交互式 DOM 能进 行更方便地跨平台操作,例如服务器渲染、 weex 开发等等。

缺点:

• 无法进行极致强化

虽然交互式 DOM + 合理的强化,足以应对绝大部分应用的操控性需求,但在许多 操控性要求极高的应用中交互式 DOM 无法进行针对性的极致强化。

实现原理

交互式 DOM 的实现原理主要就包括以下 3 部分:

• ⽤ JavaScript 对象模拟真实 DOM 树,对真实 DOM 进行抽象;

• diff 算法 — 较为两棵交互式 DOM 树的差异;

• pach 算法 — 将两个交互式 DOM 对象的差异应用到真正的 DOM 树。

Vite是甚么

1. 后端打包工具

2. 在开发环境下,采用ES6 Module,不打包,启动快

3. 生产环境打包采用rollup

参考地址:

• https://tangjiusheng.com/web/4935.html

• https://blog.csdn.net/weixin_41759744/article/details/125305021

• https://www.jb51.net/article/263720.htm

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务