vue学习关于snabbdom中h函数简单学习了解

虚拟DOM之Snabbdom的使用 Snabbdom是一个虚拟DOM库。 parcel是一个打包工具,使用非常简单,0配置。 创建Snabbdom项目结构的基本步骤: //创建项目目录 md snabbdom-demo //进入项目 cd snabbdome-demo //创建package.json npm init或yarn init -y //本地安装parcel-bundler npm install parcel-bundler或yarn add parcel-bundler //在package.json文件中,scri. 阅读详情

h函数的主要功能是根据传进来的函数返回一个vnode对象,之后便是patch方法将其挂载到页面

//index.js
import h from "./mysnabbdom/h"
let mynode = h("div", {}, [
	h("p", {}, "ll"),
	h("p", {}, "ll"),
	h("p", {}, h("p", {}, "ll"))
])
console.log(mynode)
// 三种情况
// h("div", {}, [h("p", {}, "test"), h("p", {}, "test")])
// h("div", {}, h("p", {}, "test"))
// h("div", {}, "test")
//h.js
import vnode from "./vnode"
export default function (sel, data, c) {
	//检查参数个数
	if (arguments.length != 3) throw new Error("必须传入三个函数")
	//判断第三个参数的类型
	if (typeof c == "string" || typeof c == "number") {
		return vnode(sel, data, undefined, c, undefined)
	} else if (Array.isArray(c)) {
		//遍历c,收集children
		let children = []
		for (let i = 0; i < c.length; i++) {
			//检查c[i]是否满足是一个对象
			if (!(typeof c[i] == "object" && c[i].hasOwnProperty("sel"))) {
				throw new Error("传入的数组参数中有项不是h函数")
			}
			children.push(c[i])
		}
		//循环结束,children收集完毕,返回虚拟节点
		return vnode(sel, data, children, undefined, undefined)
	} else if (typeof c == "object" && c.hasOwnProperty("sel")) {
		//传入的C是唯一children
		let children = [c]
		return vnode(sel, data, children, undefined, undefined)
	} else {
		throw new Error("传入的第三个参数值不对")
	}
}

//vnode.js
export default function (sel, data, children, text, elm) {
	return { sel, data, children, text, elm }
}

UG/NX二次开发实例流程样例(nx1980+vs2019) 以上就是基本操作了,下面进入界面开发流程,nx1980的界面开发操作,也需要在块UI界面编辑器中操作,很多教程都没有讲解这一点,尤其是如何进入块UI界面编辑器,那么我在这里详细说明一下步骤。》,这一篇文章我们将详细讲述,如何开发一个具体的功能——根据用户输入的数据,在特定的点上创建一个指定大小的立方体。可以将文件保存当桌面,笔者保存在桌面的create_block目录中了,如下图所示,可以发现生成了三个文件。4.在新建模型完成后,我们准备创建交互UI,按照下图所示的顺序,找到块UI界面编辑器,。 阅读详情

相关推荐

STM32入门教程:WiFi通信

STM32是一款强大的嵌入式系统开发平台,可以用于开发各种应用程序,包括WiFi通信。在本教程中,我们将介绍如何使用STM32开发板和WiFi模块进行无线通信。以下是一个详细的代码案例,涵盖了WiFi通信的基本概念和实现。

qq_67153941的博客 1350

Snabbdom 基本使用、了解Vue 虚拟DOM实现使用的Snabbdom

前言 首先最好了解一下Vue中的虚拟DOM Snabbdom模拟虚拟DOM实现原理 Snabbdom 基本使用 Snabbdom 中的模块 模块的作用 Snabbdom 的核心库并不能处理 DOM 元素的属性/样式/事件等,可以通过注册 Snabbdom 默认提供的模块来实现 Snabbdom 中的模块可以用来扩展 Snabbdom的功能 Snabbdom 中的模块的实现是通过注册全局的钩子函数来实现的 官方提供的模块 attributes 设置VNode对应的DOM元素的属性 内部使用的是DOM

小卡酷谋的博客 485

Ollama DNS 重新绑定攻击 (CVE-2024-28224)

一旦 DNS 重新绑定攻击成功,攻击者就可以对这些 API 进行排序,以读取 Ollama 运行的进程可访问的任意文件数据,并将这些数据泄露到攻击者控制的系统中。完成对“创建模型” API 请求的调用后,Ollama 将收集组成新创建的用户模型的许多工件,包括大型语言模型数据、许可证数据等,以及我们要提取的文件,所有这些都可以通过其 SHA256 内容进行寻址。这是我们要窃取的文件,在我们的示例中,是可通过运行 Ollama 的主机上的路径名访问的现有文本文件。值得注意的是,该模型配置为通过参数中的。

技术超强的网络安全平台 1648

snabbdom中的h函数

h函数的使用 h函数被用于创建能描述真实DOM的JavaScript对象。 比如我们可以使用h函数来描述下面这样的一条DOM节点: <a href='http://www.atguigu.com'>尚硅谷</a> 我们可以使用h函数这样表达: h('a', {props: { href: 'http://www.atguigu.com'}}, '尚硅谷') 最后h函数会的得到一个js对象,其实也就是虚拟DOM,简化过后它大概是这样的: { "sel": "a",

qq_43592084的博客 667

数据库常见面试题(附答案)

1.事务四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前,其它会话不能看到过程 一致性,事务前后,数据总额一致 持久性,一旦事务提交,对数据的改变就是永久的 2.数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看...

csdn问鼎 46万+

RT-DETR改进策略【卷积层】| CVPR-2020 Strip Pooling 空间池化模块 处理不规则形状的对象 含二次创新

一、本文介绍 本文记录的是利用Strip Pooling模块优化RT-DETR的目标检测网络模型。Strip Pooling结合了长而窄的卷积核形状在一个空间维度上的长程关系捕捉能力和在另一个空间维度上的局部细节捕捉能力,有效地处理复杂的场景信息。这一机制通过采用1×N1×N1×N或N×1N×1N×1的池化核形状来适应不同的图像特征,提高模型对目标形状和分布的适应性。在场景解析网络中,Strip Pooling可以被用于提升对具有长程带状结构或离散分布目标的解析能力,特别是在复杂场景或不同对象布局条件下效果

Limiiiing的博客 580

vue —— h函数的学习与使用

介绍vue中的h函数及其使用

Hei, Welcome To vickie's Blog,Good Good Study, Day Day Up ~ 1万+

Win11 1 月更新黑屏循环故障技术分析与解决方案

2026年1月30日Windows 11更新引发黑屏循环故障,主要影响2018年前出厂、采用MBR分区及特定BIOS固件的设备,尤其对使用经典版Outlook(POP协议)的用户影响显著。故障表现为系统无限重启黑屏,导致数据访问中断。分析表明,问题源于硬件兼容性、分区格式与系统更新的交互冲突。解决方案包括进入安全模式回滚更新、暂停自动更新、升级驱动/BIOS,以及等待微软官方补丁。建议用户更新前评估硬件兼容性并备份数据,企业环境应建立分阶段更新测试机制。该事件为系统更新风险管理提供了重要参考。

博客 1444

vue中的h函数与JSX语法

vue不仅像react一样实现了jsx,而且还借助jsx发挥了javascript动态画的优势,了解学习jsx可以让你更灵活的开发需求。在聊vue中的JSX之前,需要简单介绍一下 h 函数,理解了 h 函数,会更好的理解JSX。是一个用于创建VNode的实用程序,你可以理解为,但因为它频繁的被使用,所以简称为函数。 2.理解h函数 在vue3的项目中,是默认的写法,vue运行时会把解析为函数,之后,组件运行的时候通过函数去返回函数的运行结果去构造虚拟DOM 上面的图片是我随意运行了一个demo,打开vue调

NGUP_LEE的博客 3582

【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)

你是否在全网苦寻【图像去噪(ImageDenoising)】的相关资料?你的目标是否是看懂【图像去噪(ImageDenoising)】的相关论文,复现代码,跑出结果,并试图创新?你是否需要发表【图像去噪(ImageDenoising)】的相关论文毕业?你是否需要做【图像去噪(ImageDenoising)】的相关项目,开发软件,研究算法,获得专利或者软著?只要是与【图像去噪(ImageDenoising)】有关的问题,那么请继续往下看。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 2万+

redhawk如何看高toggle rate instance

1.图形界面View-Power Map - Toggle Map of Instances。redhawk通过报告和图形界面两种方式查看高toggle rate的instance。2.看warning log,在adsRpt/Warn里,搜toggle rate。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 623

h 函数的使用

vue中 h 函数的使用;template 标签里面的代码最终编译的效果又是什么

呆呆狗 6073

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1131

从snabbdom开始学习vue diff算法(暴力拆除篇)

从snabbdom开始学习vue diff算法(暴力拆除篇) 前言 我学习此算法的目的是为了三点:面试,学习思路,学习敲代码的风格 我在此次学习过程中真的,感受到的是,这些源码其实并不难,我们只是不了解代码的作者想要干什么,所以大家不要抱着很难的态度来看这篇文章。 同时,这篇文章中也有很多我没注意到并且写的很不好的地方,大家多多包涵,能帮我改出错误的话我会非常开心。 第一阶段:介绍snabbdom几个主要的函数是什么作用 我们一下在snabbdom github中出示的示例代码 import { ini

kjkj11的博客 1848

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Vue源码——使用snabbdom实现虚拟DOM

snabbdom的基本使用一、关于虚拟DOM二、snabbdom的基本使用1、h()函数2、patch(oldVnode,newVnode) 一、关于虚拟DOM 虚拟DOM是关于Vue中特别重要的一个特点,与响应式系统息息相关,虚拟DOM实际上是一个javascript对象。 虚拟DOM的作用: 维持视图和状态的关系 在复杂视图上才能够提升页面的渲染性能,在简单的视图上snabbdom会更加耗费资源 除了渲染DOM之外,还可以实现服务端渲染SSR(Nuxt.js/Next.js)、原生应用(weex/Re

pycharm_k的博客 6861

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

diff算法(二) snabbdom h函数

snabbdom h函数 export function h(sel: string): VNode; export function h(sel: string, data: VNodeData | null): VNode; export function h(sel: string, children: VNodeChildren): VNode; export function h(sel: string, data: VNodeData | null, children: VNodeChil

weixin_42505178的博客 213

vue2虚拟DOM和diff算法 snabbdom简单实现

简单实现snabbdom的虚拟dom和diff算法,介绍算法流程

weixin_43642894的博客 1390

snabbdom的基本使用

前言 我们上一篇博客中介绍了虚拟DOM的基本概念及常见类库,其中常见类库有2中,snabbdom和virtual-dom,而snabbdom是vue2.x版本中所使用的,所以我们这片文章就主要来记录一下snabbdom的基本使用。 创建项目 打包工具为了方便使用比较简单的parcel 创建项目 并安装parcel mkdir snabb-demo // 在工作目录下建立snabb-demo子目录 cd snabb-demo //进入snabb-demo 目录 yarn ini

黑山老妖的小站 5250

Vue源码学习(二): 手写简单版 h 函数

相信使用过vue的朋友都对这个h函数不陌生了,在vue中是通过调用 h 函数来生成虚拟DOM,今天就来简单实现一下这个 h 函数的功能。 目录结构 安装的依赖。这里的snabbdom依赖很重要,它是实现Virtual DOM的一种。 然后就是webpack的配置了 在vnode.js文件中把传入的5个参数组合成对象再返回,打撒、 ...

weixin_46831501的博客 1221

Snabbdom源码解析

Snabbdom源码解析 一.Snabbdom的核心 1.使用 h() 函数创建 JavaScript 对象(VNode)描述真实 DOM 2.init() 设置模块,创建 patch() 3.patch() 比较新旧两个 VNode 4.把变化的内容更新到真实 DOM 树上 二.src 目录结构 │ h.ts h() 函数,用来创建 VNode │ hooks.ts 所有钩子函数的定义 │ htmldomapi.ts 对 DOM AP

随风浅入画 848

学习Snabbdom库源码,掌握Vue核心的Virtual DOM的实现原理(下)

文章目录1.Snabbdom的核心2. 分析 `h` 函数3. 分析`vnode`函数4. 分析 `patch` 函数5.分析`createEle`函数6. 分析`patchVnode`函数 1.Snabbdom的核心 使用h()函数创建vNode对象描述真实DOM init()设置模块,创建并返回patch() patch()比较新旧两个vNode,更新新内容到真实DOM 源码通常比较难理解,我们不可能完全阅读源码,应该有个重点目标,比如: vNode是如何创建的 vNode是如何渲染成真实D

鸭绒的博客 442

Snabbdom学习笔记

基本使用 创建项目 导入Snabbdom 文档 看文档的意义 学习任何一个库都要先看文档 通过文档了解库的作用 看文档中提供的示例,快速实现一个demo 通过文档查看API的使用 文档地址 snabbdom github文档 snabbdom 中文文档 安装Snabbdom npm install snabbdom--save 导入snabbdom 官网使用的是commonjs模块化语法,这里使用更为流行的ES6模块化语法import 关于模块化的语法请参考阮一峰...

IT嘎嘎 781

Vue原理学习:vdom 和 diff算法(基于snabbdom)

diff 算法是一个很广泛的,前端常见的例如文本 diff ,json 对象 diff ,还有这里的“树 diff”。文本 diff ,例如 linux 的 diff 命令json diff ,例如树 diff ,如 vdom diffdiff 两棵树的时间复杂度是O(n^3)(不可用的复杂度),例如遍历 Tree1 ,每个节点都要和 Tree2 对比针对 Tree1 的节点,遍历 Tree2 每个节点和它对比重新排序但是,vdom diff 算法做了几个改进,让复杂度变为O(n)只比较同一层级。

m0_74989367的博客 1472

【Vue源码】图解 diff算法 与 虚拟DOM-snabbdom-最小量更新原理解析-手写源码-updateChildren

文章目录0. 文章结构预览0.1 虚拟DOM如何被渲染函数(h函数)产生0.2 diff算法的原理0.3 虚拟DOM如何通过diff变成真正的DOM1. 介绍1.1 diff算法1.2 虚拟DOM1.3 关系——diff是发生在虚拟Dom上的2. snabbdom 简介 及 准备工作2.1 简介2.2 搭建初始环境1. 安装snabbdom2. 安装webpack5并配置3. 复制官方demo Example3. h函数的介绍与使用3.1 介绍3.2 使用h函数 创建虚拟节点3.3 使用patch函数 将虚

YK菌的博客 9616

Snabbdom(虚拟dom-h函数)

h函数 vue中使用h()函数 new Vue({router,store,render:h=>h(App)}).$mount(“#app”) h()函数最早见于hyperscript,使用JavaScript创建超文本 Snabbdom中的h()函数不是用来创建超文本,而是创建VNode 函数的...

SeriousLose 371

Vue源码之虚拟DOM和diff算法(一) 使用snabbdom

Vue源码之虚拟DOM和diff算法(一) 使用snabbdom 什么是虚拟DOM和diff算法 diff算法简介 要把左图装修成右图的样子。(哪里不同?仔细找) 有两种方案。 方案一:拆掉重建(效率低,代价大) 方案二:diff(精细化比对,最小量更新) 怎么看都应该会选择方案二。 那么在Vue中使用 diff的情景呢? 上图就是在Vue中使用 diff的情景(比如左图中,有一些元素的 v-if为false,所以不显示,而右图中, v-if为 true) 虚拟DOM简介 虚拟DOM:用来描

赤蓝紫の博客 1240

【Snabbdom】虚拟DOM-Snabbdom

Snabbdom,虚拟DOM

球球博客 504
上一篇: 水平垂直居中的方法
下一篇: 使用ant design mobile的定制主题时的配置
学习前端ing
博客等级 码龄7年 1粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值