Vue.js框架中权衡的艺术(二)

简介: Vue.js框架中权衡的艺术

innerHTML

  • 可以获取调用元素的所有子节点对应的html片段
  • 可以是根据指定的值创建DOM树,替换原有的元素节点

一般我们插入大量新HTML标记时,使用innerHTML 与 通过多次DOM操作先创建节点再指定它们之间的关系相比,效率更高,因为在设置innerHTML 时就会先创建一个HTML解析器,这个解析是在浏览器级别的基础上代码(c++)运行的,因此比执行js 快得多,当然也会带来 创建销毁 html 解析器也有性能消耗。所以控制使用次数。

当新建页面时

const html =  `
  <div><span>...</span></div>
`
div.innerHTML = html

通过 innerHtml 创建页面的性能 = HTML字符串拼接的计算量 + innerHTML的DOM计算量

通过 虚拟dom 创建页面的性能 = 创建虚拟dom的计算量 + 创建真实DOM的计算量


innerHTML
虚拟DOM
JavaScript运算
拼接html字符串

创建虚拟dom
DOM构建 新建所有dom元素 新建所有dom元素

新建页面时,JavaScript运算和DOM构建层面相差不大,innerHTML 性能甚至优于 虚拟dom

当更新页面时


innerHTML 虚拟DOM
JavaScript运算
拼接html字符串
创建虚拟dom + diff算法
DOM构建性能因素 销毁旧dom新建新dom与模版大小相关 必要的dom更新与数据变化量相关

更新dom 时,虚拟DOM性能更加优越

修改dom的三个方法对比

innerHTML 虚拟dom
原生js(createElement)
心智负担重等性能差 心智负担小可维护性高性能不错 心智负担大可维护性差性能高

权衡之后,vue 使用的 虚拟dom 性能是很不错的,目前没有更好的方案

运行时和编译时的权衡

设计一个框架时,一般有三种选择

纯运行时

我个人理解,纯运行时,就比如jquery,或者和命令式框架写法相似

纯编译时

比如Svelte, 0运行时,直接编译成可执行的js代码,因此性能更好。

运行时+编译时

vue react 都是运行时+编译时。

<template><jsx>

代码都会在编译时被打包成被渲染成 树形结构。在运行时,执行render进行渲染。


相关文章
|
1天前
|
数据采集 JavaScript 前端开发
Vue框架的优缺点是什么
【7月更文挑战第5天】 Vue框架:组件化开发利于重用与扩展,响应式数据绑定简化状态管理;学习曲线平缓,生态系统丰富,集成便捷,且具性能优化手段。缺点包括社区规模相对小,类型支持不足(Vue 3.x改善),路由和状态管理需额外配置,SEO支持有限。随着发展,部分缺点正被克服。
7 1
|
2天前
|
资源调度 JavaScript 前端开发
JavaScript进阶 - JavaScript库与框架简介
【7月更文挑战第5天】JavaScript库和框架构成了前端开发的核心,如jQuery简化DOM操作,Angular、React和Vue提供全面解决方案。选择时要明确需求,避免过度工程化和陡峭学习曲线。使用版本管理工具确保兼容性,持续学习以适应技术变化。示例展示了jQuery和React的简单应用。正确选择和使用这些工具,能提升开发效率并创造优秀Web应用。
|
10天前
|
缓存 JavaScript 前端开发
Vue.js框架在构建单页面应用中的最佳实践
Vue.js最佳实践包括组件化(如单一职责组件)、使用Vuex管理状态、axios处理异步请求、Vue Router进行路由、优化性能(keep-alive及懒加载)和选择UI库配合模块化样式。通过这些方法,开发者能构建高效、可维护的SPA。【6月更文挑战第25天】
14 1
|
10天前
|
前端开发 JavaScript 开发者
探索现代前端框架:从React到Vue.js
【6月更文挑战第26天】在数字时代的浪潮中,前端框架如同建筑的基石,支撑着互联网界面的创新与发展。本文将带领读者穿梭于React与Vue.js这两个最受欢迎的前端框架之间,揭示它们的核心特性、设计理念以及在实际开发中的应用差异。通过比较分析,我们将理解每个框架的优势和局限,并探索如何根据项目需求作出明智的选择。加入我们,一起深入前端技术的瑰丽世界,发现构建未来网络界面的无限可能。
|
1天前
|
JavaScript 前端开发 开发工具
如何学习vue框架
【7月更文挑战第5天】 - 先学HTML/CSS/JS基础和前端工程化工具(npm, webpack, Git)。 - 从Vue官方文档学习基础,包括指令、组件、响应式系统。 - 深入研究Vue Router和Vuex,掌握路由管理和状态管理。 - 学习自定义指令和Mixins,优化性能技巧。 - 实战项目练习,加入Vue社区,阅读相关资源,提升技能。 - 关注Vue生态,持续实践和创新,以适应不断发展的框架。
5 0
|
1天前
vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程
vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程
4 0
|
3天前
|
开发框架 监控 JavaScript
企业级node.js开发框架 【egg.js】 实用教程
企业级node.js开发框架 【egg.js】 实用教程
7 0
|
18天前
|
JavaScript 前端开发 Java
信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ&插件项目
信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ&插件项目
|
20天前
|
JavaScript 前端开发 编译器
跨越时代的框架对决:深度剖析Vue 2与Vue 3核心差异
跨越时代的框架对决:深度剖析Vue 2与Vue 3核心差异
23 0