《vue.js设计与实现》读后总结

news/2024/7/10 2:41:49 标签: vue

vuejs_0">《vue.js设计与实现》读后总结

一、权衡的艺术

vue是声明式框架,声明式框架更关注结果。
vue.js帮我们封装了过程,内部是命令式的,暴露给用户的是声明式。
声明式代码的性能不优于命令式代码的性能。声明式代码会比命令式代	码多出找出差异的性能消耗。
vue在保持代码可维护性的同时让性能损失最小化。

vuejs_6">为什么vue.js选择声明式?

  1. 声明式代码可维护性更强,直接展示我们要的结果,做事的过程不需要关心;
  2. 命令式代码需要维护实现目标的整个过程(DOM创建更新删除);

虚拟DOM因为性能最小化而出现

纯JavaScript层面的操作比DOM操作快得多

虚拟DOM创建页面的过程
  1. 创建javaScript对象(真实的DOM描述);

  2. 递归遍历虚拟DOM树并创建真实DOM;

     创建时,虚拟DOM与innerHTML相比没有优势
    
虚拟DOM更新页面的过程
  1. 重新创建JavaScript对象(虚拟DOM树);

  2. 比较新旧虚拟DOM,找到变化元素并更新他;

     虚拟DOM更新页面时只会更新必要的元素,但innerHTML需要全量更新。
     
     虚拟DOM心智负担小,可维护性强,性能虽然比不上极致优化的原生JavaScript,但是在保证心智负担和可维护性的前提下相当不错。
    

vuejs30_23">vue.js3.0保持了运行时+编译时的架构

	保持灵活性的基础上,还能通过编译手段分析用户提供的内容,从而进一步提升性能;

二、框架设计的核心要素

提升用户的开发体验

以chrome为例,在DevTools设置中,勾选Console => Enable custom formatters ,会是ref值的打印非常直观,因为vue.js3.0内部自定义了formatter => initCustomFormatter,浏览器允许自定义formatter。

控制框架代码的体积

通过常量条件判断代码是否要执行,不执行的代码被称为dead code, 它不会出现在最终的产物中,在构建资源的时候就会被移除。

框架要做到良好的Tree-Shaking


http://www.niftyadmin.cn/n/5158332.html

相关文章

SSM-spring注解式缓存redis

目录 一.redis整合 1.1.pom配置 1.2.配置文件spring-redis.xml 1.3.配置redis的key生成策略 二.redis的注解式开发及应用场景 2.1.什么是redis的注解式 2.2.Cacheable 2.3.自定义策略 2.4.CachePut 注解 三.redis的击穿穿透雪崩 1.击穿问题 2.穿透问题 3.雪崩问题 一…

517-0224-16A-458525 531X303MCPARG1 现代工厂中DCS与PLC的比较

517-0224-16A-458525 531X303MCPARG1 现代工厂中DCS与PLC的比较 分布式控制系统(DCSs)和可编程逻辑控制器(PLC)之间的区别可以归结为一个简单的足球比喻。你的指挥系统是你的船长。团队名单上的第一个名字,你的DCS是可靠的,勤奋的,控制着整个…

【解刊】3区SCI,25天录用,4天见刊!计算机网络通信领域

计算机类 • 好刊解读 今天小编带来Elsevier旗下计算机领域好刊的解读,如有相关领域作者有意向投稿,可作为重点关注!后文有同领域快刊发表案例,供您投稿参考~ 01 期刊简介 Physical Communication ☑️出版社:Elsev…

辐射骚扰整改思路及方法:参数选择与解决之道?|深圳比创达电子EMC

辐射骚扰整改思路及方法:参数选择与解决之道?相信不少人是有疑问的,今天深圳市比创达电子科技有限公司就跟大家解答一下! 某产品首次EMC测试时,辐射、静电、浪涌均失败。本篇文章就“参数选择与解决之道”问题进行详细…

导出数据为zip压缩文件,解压后为json文件

前端只要将要导出的数据的ids传回后端就行了 比如 handleExportApp(row) {const ids row ? [row.id] : this.checkedRows.map(v > v.id); //exportApp为后端导出接口exportApp(ids.join(","));},后端接口 public void exportApp(String ids, HttpServletRespon…

多模态中各种Fusion方式汇总

多模态中各种Fusion骚操作 大噶好,我是DASOU; 今天继续写多模态系列文章,对多模态感兴趣的可以看我之前的文章: 其实对于多模态来说,主要可以从三个部分去掌握它: 如何获取多模态的表示【learning mult…

年营收增长30%起!武汉迪赛威用飞桨助推智慧执法

智慧执法已成为建设文明城市不可忽视的环节。而“智慧执法”这四个字背后,却是社会治理中无穷无尽的需要考虑和衡量的微小细节。有时候,仅仅是一个环节的改进,就能节省极大的人力物力财力。 例如,“随身物品智能识物终端”&#…

uni-app android js判断数值是否是数组

判断是否是数组有的方法不适用,如instanceof 推荐的解决方式: Object.prototype.toString.call(value) [object Array]