javascript --- > [虚拟DOM] 初始化&& 实现

说明本篇主要说明为什么要使用虚拟DOM技术,以及如何实现简单的虚拟dom为什么提出 -> DOM操作慢我们使用createElement属性来创建一个最常见的div,看看一个最常见的DOM有多少个属性<script> const div = document.createElement('div'); let str = ''; for(let key i...
摘要由CSDN通过智能技术生成

说明

  • 本篇主要说明为什么要使用虚拟DOM技术,以及如何实现简单的虚拟dom
  • 您将会学到:
    1.原生JS对DOM的操作
    2.虚拟DOM的相关概念
    3.DIFF算法的基础概念

为什么提出 -> DOM操作慢

  • 我们使用createElement属性来创建一个最常见的div,看看一个最常见的DOM有多少个属性
<script>
	const div = document.createElement('div');
	let str = '';
	for(let key in div){
   
		str += key + ' ';
	}
	console.log(str);
</script>

在这里插入图片描述

  • 可以看出,每个DOM其实是由很多内置的属性.因此,当DOM元素的操作过多的时候,其性能可想而知.
  • 这就迫使我们去想一个办法去减少DOM操作

为什么提出 -> 对比Ajax技术的出现

  • 早期的网页交互,是整个页面进行更新的.
  • 但是大多数时候,用户对页面的操作,只是一小部分,这就导致了大多数更新是多余的.
  • 于是产生了Ajax技术(网页的部分更新)
  • 可以模仿Ajax技术,去部分渲染DOM

为什么提出 -> DOM树的概念

  • 你可以会反驳,减少DOM的操作,不一定非要用到虚拟DOM,而可以直接对DOM进行操作.
  • 这就得先理解DOM树.
  • 先看一个浏览器得请求过程:
    1.用户输入网址后,浏览器像服务器发送HTTP请求获得HTML页面
    2.得到页面后,HTML解释器、词法分析器、语法分析器就会把HTML从字节流解释成DOM树的结构(过程比较复杂,也许会开一篇新文章具体说明)
    3.得到DOM树后,WebKit会分批次的将结果词语返回给渲染线程进行渲染
  • 上面对DOM的产生和渲染说的比较细了,这样说的主要原因是: 说明没有一个类或者方法,可以得到内存中待渲染的DOM树(有可能要,但是我不知道QAQ).
  • 下面开始逐步实现虚拟DOM

createElement

  • 我们想实现以下结构
    在这里插入图片描述
  • 语法如下:
let vertualDom = createElement('ul', {
    class: 'list'}, [
	createElement('ul', {
    class: 'list'}, ['a'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值