当前位置:网站首页>render函数与虚拟dom
render函数与虚拟dom
2022-07-04 19:48:00 【bug丸】
render函数与虚拟dom
虚拟dom
是什么:用来描述dom的js对象
作用:vue在更新真实DOM前,虚拟dom会进行diff运算,比较更新前后虚拟DOM结构中的有差异的部分,然后采用异步更新队列的方式将差异的部分更新到真实DOM中,从而减少了最终要在真实DOM上执行的操作次数,提高了页面渲染的效率
let vDom = {
tag: "div",
attributes: {
id: "vdom",
},
children: {},
};
从模板到真实dom:
模板 -> 进行编译 -> 成render函数 -> 虚拟dom -> 真实dom
如果直接使用render函数,就省略了模板的编译过程,vue运行的更快
render函数
render函数就是用于实现虚拟dom的
使用render函数代替模板功能
不再需要使用vue内置指令,也没法使用,我们都可以通过原生js来实现
render函数通过createElement参数来创建虚拟dom;
createElement构成了vue virtual dom的模板,它有三个参数:
第一个参数必选:可以是一个html标签,也可以是一个组件或函数
第二个参数可选:数据对象,该dom节点的配置
第三个参数可选:组节点
<script>
export default {
render: (createElement) => {
return createElement(
// 第一个参数:必选,标签名
"div",
// 第二个参数:可选对象,标签相关信息
{
// 与 `v-bind:class` 的 API 相同,
// 接受一个字符串、对象或字符串和对象组成的数组
class: {
baseClass: true,
bar: false,
},
// 与 `v-bind:style` 的 API 相同,
// 接受一个字符串、对象,或对象组成的数组
style: {
color: "red",
fontSize: "16px",
},
// 普通的 HTML 特性
attrs: {
id: "foo",
},
// 组件 prop
props: {
myProp: "bar",
},
// DOM 属性
// domProps: {
// innerHTML: `爱你`,
// },
// 事件监听器在 `on` 属性内,
// 但不再支持如 `v-on:keyup.enter` 这样的修饰器。
on: {
click: function() {
console.log(6688);
},
},
},
// 第三个参数:可选数组,子节点相关
["爱你!", createElement("p", ["么么哒"])]
);
},
};
</script>
<style lang="less" scoped>
.baseClass {
background: #ccc;
}
</style>
.baseClass {
background: #ccc;
}
</style>
边栏推荐
- Flet教程之 06 TextButton基础入门(教程含源码)
- Implementation of redis distributed lock
- Flet教程之 05 OutlinedButton基础入门(教程含源码)
- 电脑共享打印机拒绝访问要怎么办
- Advantages of semantic tags and block level inline elements
- Quelques suggestions pour la conception de l'interface
- Some suggestions for interface design
- 测试员的算法面试题-找众数
- Flet tutorial 06 basic introduction to textbutton (tutorial includes source code)
- What if win11u disk refuses access? An effective solution to win11u disk access denial
猜你喜欢
How to solve the problem that win11 cannot write the value to the registry key?
阿里测试师用UI自动化测试实现元素定位
What if the computer page cannot be full screen? The solution of win11 page cannot be full screen
idea恢复默认快捷键
LeetCode+ 81 - 85 单调栈专题
字节测试工程师十年经验直击UI 自动化测试痛点
精选综述 | 用于白内障分级/分类的机器学习技术
伦敦银走势图分析的新方法
工厂从自动化到数字孪生,图扑能干什么?
二叉树的四种遍历方式以及中序后序、前序中序、前序后序、层序创建二叉树【专为力扣刷题而打造】
随机推荐
Jekins initialization password not found or not found
idea插件
Why is TCP three handshakes and four waves
[server data recovery] a case of RAID5 data recovery stored in a brand of server
【观察】联想:3X(1+N)智慧办公解决方案,释放办公生产力“乘数效应”
【服务器数据恢复】某品牌服务器存储raid5数据恢复案例
记一次重复造轮子(Obsidian 插件设置说明汉化)
科普达人丨一文看懂阿里云的秘密武器“神龙架构”
E-week finance | Q1 the number of active people in the insurance industry was 86.8867 million, and the licenses of 19 Payment institutions were cancelled
go defer的使用说明
Some suggestions for interface design
电脑页面不能全屏怎么办?Win11页面不能全屏的解决方法
太方便了,钉钉上就可完成代码发布审批啦!
记录线上bug解决list(未完待续7/4)
Quelques suggestions pour la conception de l'interface
企业数字化转型最佳实践案例:基于云的数字化平台系统安全措施简介与参考
工厂从自动化到数字孪生,图扑能干什么?
奏响青春的乐章
js 闭包
Win11系统wifi总掉线怎么办?Win11系统wifi总掉线的解决方法