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

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

1686889477236.jpg

前言

更文活动又开始了,冲这奖品也得肝一肝,先给自己定个小目标,活动结束之前,先肝个7篇,完成个最基础的任务。

无奈,平时积累的文章不够,恰好,上个月读了一段时间《Vue.js设计与实现》,有整理部分笔记,先发几篇。

所以,后面几篇内容都是对这本书内容的整理总结

详细情况可以查看专栏学习理解《Vue.js设计与实现》

《Vue.js 设计与实现》是Vue.js官方团队成员 霍春阳 倾力打造,基于Vue.js3 深入解析Vue.js设计细节。

这本书一大特点就是贵,定价120,到手价格90。

1686889528518.jpg

设计框架里到处都体现了权衡的艺术

牛逼!!!

其实说人话就是 就是设计时的技术方案的选型,然后为什么选这个,不选那个,高大上一点就是 权衡。

命令式 和 声明式的权衡

视图层的框架一般分为 命令式和声明式。

命令式框架:如Jquery和原生js,更关注更改视图,修改dom的过程。

声明式框架:如vue,更关注结果,操作dom,修改dom的过程我们不用关心,vue去帮我们我们完成,我们只需要告诉框架我们需要什么样的东西

以一个操作dom的场景为例子

  • 获取一个dom\
  • 设置文本内容hello world\
  • 为其绑定点击事件\
  • 当点击时弹出ok


// jquery 实现
$('#app') // 获取div
    .text("hello world") // 设置文本内容
    .on("click",()=>{ alert('ok') }) // 增加监听事件
// 原生js实现
const div = document.querySelector('#app') // 获取div
div.innnerText = 'hello world' // 设置文本内容
div.addEventListner('clilk',() => { alert('ok') } })   // 增加监听事件
// vue 实现
<div @click="()=> alert('ok')">hello word</div>

命令式框架,更加符合人脑处理事情的思路,面向过程,一步一步去做。

声明式框架,更加傻瓜式一些,只需要告诉框架,我需要的结果,但是如果告诉框架,有框架自定义的一套规范,有学习成本和使用成本。

权衡之后,vue 决定按 一套 声明式框架来设计

性能与可维护的权衡

命令式框架的性能 优于 声明式的框架的性能

简单来说,就是jquery 性能优于 vue

当我们需要更新dom时

  • 对于vue 框架来说,修改dom 需要先找到真实dom 和虚拟dom的差异,更新dom有差异的地方。
  • 对于jquery 框架来说,修改dom 直接去修改就可以了。

vue 等声明式框架的更新性能消耗 = 直接修改的性能消耗 + 找出差异的性能消耗

jquery 等命令式框架的更新性能消耗 = 直接修改的性能消耗

所以说,jquery 性能优于 vue

当然了vue的可维护性更强,所以我们需要做的是,努力减小找出差异的性能消耗,这样就可以使vue的性能无限接近jquery

因此我们提出了虚拟dom,来最小化找出差异

虚拟DOM的性能

其实性能这个东西,很难直接说,好不好,没有对比就没有伤害

我们把它和原生js 修改dom 进行对比

虚拟dom 简单来讲它就是将HTML的DOM,用一套JS对象来表示。

为了更好的说明虚拟dom的性能,我们用innerHTML来比较。

innerHTML 是html5 提出的一个新的获取操作dom的方法。

不知道这个api的可以去查一查,活着看下我之前写的dom bom博客,

从零开始学习dom bom



相关文章
|
26天前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实战指南
【9月更文挑战第6天】在数字化时代的潮流中,后端开发作为支撑现代Web和移动应用的核心,其重要性不言而喻。本文将深入浅出地介绍如何使用Node.js及其流行的框架Express来搭建一个高效、可扩展的后端服务。通过具体的代码示例和实践技巧,我们将探索如何利用这两个强大的工具提升开发效率和应用性能。无论你是后端开发的新手还是希望提高现有项目质量的老手,这篇文章都将为你提供有价值的见解和指导。
|
2月前
|
JavaScript 前端开发 中间件
构建高效后端服务:Node.js与Express框架的完美搭档
【8月更文挑战第28天】在追求高性能、可扩展和易维护的后端开发领域,Node.js和Express框架的组合提供了一种轻量级且灵活的解决方案。本文将深入探讨如何利用这一组合打造高效的后端服务,并通过实际代码示例展示其实现过程。
|
2月前
|
JavaScript 前端开发 开发者
Vue.js 框架大揭秘:响应式系统、组件化与路由管理,震撼你的前端世界!
【8月更文挑战第27天】Vue.js是一款备受欢迎的前端JavaScript框架,以简洁、灵活和高效著称。本文将从三个方面深入探讨Vue.js:响应式系统、组件化及路由管理。响应式系统为Vue.js的核心特性,能自动追踪数据变动并更新视图。例如,通过简单示例代码展示其响应式特性:`{{ message }}`,当`message`值改变,页面随之自动更新。此外,Vue.js支持组件化设计,允许将复杂界面拆分为独立且可复用的组件,提高代码可维护性和扩展性。如创建一个包含标题与内容的简单组件,并在其他页面中重复利用。
57 3
|
2月前
|
存储 JavaScript NoSQL
构建高效Web应用:使用Node.js和Express框架
【8月更文挑战第30天】本文将引导你了解如何使用Node.js和Express框架快速搭建一个高效的Web应用。通过实际的代码示例,我们将展示如何创建一个简单的API服务,并讨论如何利用中间件来增强应用功能。无论你是新手还是有经验的开发者,这篇文章都将为你提供有价值的见解。
|
5天前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
14 3
|
7天前
|
前端开发 JavaScript API
React、Vue.js 和 Angular前端三大框架对比与选择
前端框架是用于构建用户界面的工具和库,它提供组件化结构、数据绑定、路由管理和状态管理等功能,帮助开发者高效地创建和维护 web 应用的前端部分。常见的前端框架如 React、Vue.js 和 Angular,能够提高开发效率并促进团队协作。
24 4
|
9天前
|
JavaScript 前端开发
常用的 JavaScript 框架和库
常用的 JavaScript 框架和库
13 6
|
9天前
|
前端开发 JavaScript 开发者
React 和 Vue.js 框架的区别是什么?
React 和 Vue.js 框架的区别是什么?
|
14天前
|
缓存 监控 JavaScript
构建高效后端服务:Node.js与Express框架的完美结合
【9月更文挑战第18天】在数字化时代的浪潮中,后端服务的效率和稳定性成为了企业竞争力的关键。本文将深入探讨如何使用Node.js和Express框架来构建一个既高效又稳定的后端服务,同时通过实际代码示例,展示如何优化性能并确保服务的高可用性。
|
21天前
|
Web App开发 缓存 JavaScript
构建高效后端服务:Node.js与Express框架的完美结合
【9月更文挑战第11天】本文将引导开发者探索如何利用Node.js和Express框架搭建一个高效的后端服务。文章不仅深入讲解了这两个工具的核心概念,还通过实际示例展示了它们的强大功能和易用性。读者将学会如何处理HTTP请求、设计RESTful API以及优化应用性能。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你在后端开发领域更进一步。
下一篇
无影云桌面