从0到1写vue源码(02手写diff算法)

news2024/10/8 12:05:10

snabbdom

 snabbdom简介

搭建snabbdom环境

npm init
npm i -S snabbdom

搭建好后出现这样一个文件,sanabbdom里边就有js源码

接着安装webpack命令

npm install --save-dev webpack@5 webpack-cli@3 webpack-dev-server@3 --legacy-peer-deps

直接npm run dev命令

接着去官方网址 GitHub - snabbdom/snabbdom: A virtual DOM library with focus on simplicity, modularity, powerful features and performance.把 Example这个方法给放在src目录下的index.js文件中

至此搭建完成

snabbdom的h函数

什么是虚拟dom

虚拟dom

虚拟节点的属性

一般来说虚拟节点的属性有

{
 children:undefined   //是否有父子节点
 data:{},             //元素样式属性及数据属性都会存在在这里
 elm:undefined,       //与真实dom的节点数
 key:undefined,       //唯一标识
 sel:"div",           //元素
 text:"我是一个盒子"    //文字
}

现在我编写了这样的函数,但是当我打印出来的数据是

手写h函数

snabbodm中diff算法

手写diff算法

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1917139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战教程:如何利用Optimizer优化你的Windows系统?

前言 你是否厌倦了系统臃肿、隐私泄露的烦恼?小江湖今天就要带你走进一个全新的世界,一个能够让你重获自由与安心的神奇之地——Optimizer,一款专为Windows用户打造的深度优化神器;有了它你仅需轻轻一点,再也不用为系…

Shader每日一练(2)护盾

Shader "Custom/Shield" {Properties{_Size("Size", Range(0 , 10)) 1 // 控制噪声纹理缩放大小的参数_colorPow("colorPow", Float) 1 // 控制颜色强度的指数_colorMul("colorMul", Float) 1 // 控制颜色乘法因子_mainColor("…

如何在 Python 中创建一个类似于 MS 计算器的 GUI 计算器

问题背景 假设我们需要创建一个类似于微软计算器的 GUI 计算器。这个计算器应该具有以下功能: 能够显示第一个输入的数字。当按下运算符时,输入框仍显示第一个数字。当按下第二个数字时,第一个数字被替换。 解决方案 为了解决这个问题&am…

el-date-picker 限制选择六个月内的日期

效果如图&#xff1a; 代码&#xff1a; <el-date-picker v-model"serchTimes" type"daterange" size"small" start-placeholder"开始时间"range-separator"~" end-placeholder"结束时间" format"yyyy /…

防火墙安全策略及用户认证实验

一、实验拓扑 二、实验要求 1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间&#xff08;9&#xff1a;00-18&#xff1a;00&#xff09;内可以访问&#xff1b;生产区的设备全天可以访问 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3、办公区设…

逆向案例十一——华强北登录逆向

网址&#xff1a;aHR0cHM6Ly9wYXNzcG9ydC5ocWV3LmNvbS9sb2dpbg 登陆页面&#xff1a; 打开开发者工具会出现debugger调试&#xff1a; 直接使用一律不再此处暂停即可。点击登录&#xff0c;找到登录包。 发现有三个参数进行了加密&#xff0c;分别是Password,UserName和Devic…

概率论期末速成(知识点+例题)

考试范围 一&#xff1a; 事件关系运算性质全概率公式、贝叶斯公式古典概型 二&#xff1a; 离散分布律连续密度函数性质 -> 解决三个问题&#xff08;求待定系数、求概率、求密度函数&#xff09;分布函数 -> 解决三个问题常用分布&#xff08;最后一节课的那几个分…

Auslogics Disk Defrag Pro v11激活版下载、安装、使用教程 (磁盘碎片整理工具)

前言 Auslogics Disk Defrag Pro 是一款支持 FAT16 文件系统的磁盘碎片整理工具&#xff0c;它可以快速整理磁盘碎片&#xff0c;使磁盘空间更加整洁&#xff0c;显著提升电脑的运行速度。该软件无需任何分析阶段&#xff0c;并且速度比大多数其他碎片整理软件更快。它可以帮助…

算法力扣刷题记录 四十一【N叉树遍历】

前言 依然是遍历问题。由二叉树扩展到N叉树遍历。 记录 四十一【N叉树遍历】 一、【589. N叉树的前序遍历】 题目 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每组子节点由空值 null 分隔…

Node.js_fs模块

文件删除 文件重命名和移动&#xff08;本质都是修改路径&#xff09; 文件夹操作 创建文件夹(mkdir) 读取文件夹(readdir) &#xff08;打印出来是该文件夹下名称的数组形式&#xff09; 读取当前的文件夹(readdir) 删除文件夹 &#xff08;rmdir&#xff09; 查看资源状态…

合合信息大模型加速器亮相WAIC大会:文档解析与文本识别新突破

合合信息大模型加速器亮相WAIC大会&#xff1a;文档解析与文本识别新突破 文章目录 合合信息大模型加速器亮相WAIC大会&#xff1a;文档解析与文本识别新突破前言合合信息TextIn平台&#xff1a;智能文档处理的领军者文档解析引擎&#xff1a;百页文档秒级处理大模型的发展背景…

文件数据跨境传输这些常见问题,要怎么解决?

越来越多的企业和机构面临文件数据跨境传输的场景和需求&#xff0c;数据跨境流通的过程还是比较复杂的&#xff0c;所以在传输过程中会面临各种问题。 比如法律法规和数据保护、技术标准、网络带宽和速度、数据安全风险控制等&#xff0c;企业要如何解决这些问题呢&#xff1…

数据仓库介绍_维度表(三)

维度表概述 维度表是维度建模的基础和灵魂。前文提到&#xff0c;事实表紧紧围绕业务过程进行设计&#xff0c;而维度表则围绕业务过程所处的环境进行设计。维度表主要包含一个主键和各种维度字段&#xff0c;维度字段称为维度属性。 表设计步骤 确定维度&#xff08;表&…

UI设计工具选择指南:Sketch、XD、Figma、即时设计

在数字产品设计产业链中&#xff0c;UI设计师往往起着连接前后的作用。产品经理从一个“需求”开始&#xff0c;制定一个抽象的产品概念原型。UI设计师通过视觉呈现将抽象概念具体化&#xff0c;完成线框图交互逻辑视觉用户体验&#xff0c;最终输出高保真原型&#xff0c;并将…

2.电容(常见元器件及电路基础知识)

一.电容种类 1.固态电容 这种一般价格贵一些&#xff0c;ESR,ESL比较低,之前项目400W电源用的就是这个&#xff0c;温升能够很好的控制 2.铝电解电容 这种一般很便宜&#xff0c;ESR,ESL相对大一些&#xff0c;一般发热量比较大&#xff0c;烫手。 这种一般比上一个贵一点&am…

this.$confirm不要取消按钮以及右上角的差号

this.$confirm(保存成功! 订单号为&#xff1a;${res.data}, , {confirmButtonText: 确定,showCancelButton: false, // 不显示取消按钮showClose: false, // 不显示右上角的叉号type: success}).then(() > {}) 效果图下&#xff1a;

香港物理服务器租用优势

香港物理服务器租用因其独特的地理位置、先进的网络设施以及优质的服务&#xff0c;成为了众多企业和个人开发者青睐的选择。以下是香港物理服务器租用的主要优势&#xff1a; 稳定性与性能 香港物理服务器直接依赖其高性能硬件运行&#xff0c;不受虚拟化层的影响&#xff0c;…

24小时悬停系留照明无人机技术详解

24小时悬停系留照明无人机是一款专门设计用于提供长时间、高效能照明服务的无人机系统。该系统结合了无人机技术与先进的照明设备&#xff0c;通过系留技术实现无人机的稳定悬停&#xff0c;从而提供连续不断的照明服务。该无人机能够在各种环境条件下进行24小时不间断工作&…

对controller层进行深入学习

目录 1. controller层是干什么的&#xff1f;1.1 controller原理图1.2 controller层为什么要存在&#xff1f;1.2.1 分离关注点1.2.2 响应HTTP请求1.2.3 数据处理与转换1.2.4 错误处理与状态管理1.2.5 流程控制1.2.6 依赖注入与测试 1.3 controller层的优点1.3.1 多端支持1.3.2…

PHP 程序员是学 Swoole ?还是学 Go ?

大家好&#xff0c;我是码农先森。 面临现状 这次为什么要讨论这个话题&#xff0c;因为 Swoole 和 Go 在 PHP 程序员坊间一直都是茶语饭后的谈资&#xff0c;觉得懂 Swoole 和 Go 的就高人一等。相信有很多的 PHP 程序员&#xff0c;自打 Swoole 发布以来就从来没有使用过。…