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

news/2025/2/19 14:56:48/

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

一、权衡的艺术

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

为什么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,但是在保证心智负担和可维护性的前提下相当不错。
    

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

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

二、框架设计的核心要素

提升用户的开发体验

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

控制框架代码的体积

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

框架要做到良好的Tree-Shaking


http://www.ppmy.cn/news/1201816.html

相关文章

为机器学习算法准备数据(Machine Learning 研习之八)

本文还是同样建立在前两篇的基础之上的! 属性组合实验 希望前面的部分能让您了解探索数据并获得洞察力的几种方法。您发现了一些数据怪癖,您可能希望在将数据提供给机器学习算法之前对其进行清理,并且发现了属性之间有趣的相关性&#xff0c…

使用Wireshark抓包分析ARP协议工作原理

1.什么是ARP协议 ARP协议(Address Resolution Protocol),即地址解析协议,是以太网中用于描述目标IP地址和目标主机MAC地址对应映射。 ARP仅用于IPv4协议,IPv6使用邻居发现协议**(NDP)**替代。 交换机、路由器、主机…

actual combat 22 —— 若依图片上传成功但是无法回显

这种问题大多数是路径问题。要有足够的自信,不能动摇心中的解决方法正确的路径: A:请求ipB:网关端口C:路由转发地址:如 /systemD:WebMvcConfigurer子类中addResourceHandlers方法中addResource…

呆头鹅-全自动视频混剪,批量剪辑批量剪视频,探店带货系统,精细化顺序混剪,故事影视解说,视频处理大全,精细化顺序混剪,多场景裂变,多视频混剪

视频闪闪-全自动视频混剪,探店带货系统,多视频混剪,让你成为视频处理大师! 一、全自动视频混剪 www.shipinshanshan.com 你是否曾经厌烦于冗长的视频剪辑过程?是否曾经为了一个短短的混剪视频而熬夜加班?现…

stm32HAL库串口错误回调函数的使用

使用stm32HAL库串口IDLE中断时,有时串口速度快会导致串口出错后续就收不到数据了 可以通过实现串口中断回调函数来解决 void usart_DMA_rx_EN(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size) { HAL_UARTEx_ReceiveToIdle_IT(huart,pData,Size); //HAL_UARTEx_Recei…

穿越时空的探索:云计算如何塑造我们的未来世界

我们生活在一个充满奇迹的时代,这个时代由云计算引领和塑造。从智能家居到无人驾驶,从虚拟现实到人工智能,云计算像无所不能的超级英雄一样,深入影响着我们生活的方方面面。它不仅仅是一种技术革新,更是一种生活方式的…

群狼调研(长沙市场调研咨询)|如何提升水务营商环境满意度?

提升水务营商环境满意度需要综合性的策略和措施。以下是一些可以帮助提升水务营商环境满意度的方法: 1. 改善水质和供水稳定性: • 投资于水质监测、处理设备和供水网络的维护,确保供水的安全和稳定性。 • 定期检测水质,及时发…

【JavaEE】yapi平台搭建步骤详解

数据库 创建数据卷 docker volume create mongo-data启动 MongoDB docker run -d \--name mongo-yapi \-v mongo-data:/data/db \-e MONGO_INITDB_ROOT_USERNAMEroot \-e MONGO_INITDB_ROOT_PASSWORDberry.com \mongoyapi 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.…