首页 > 其他分享 >react16之前的虚拟dom数据结构简单简介

react16之前的虚拟dom数据结构简单简介

时间:2024-09-06 21:25:58浏览次数:15  
标签:数据结构 更新过程 dom react16 type children

在react 16之前的版本中,虚拟dom节点的数据结构看起来大致如下

const VitrualDom = {
  type: 'div',
  props: { class: 'title' },
  children: [
    {
      type: 'span',
      children: 'Hello ConardLi'
    },
    {
      type: 'ul',
      children: [
        { type: 'li', children: '苹果' },
        { type: 'li', children: '橘子' }
      ]
    }
  ]
}

这个结构是一个典型的树形结构,其中,每个节点都有零个或多个子节点,形成了一个树状的层次结构。这种结构非常适合用来表示HTML文档的结构,并且便于在内存中进行操作。

然而,这种树形结构的一个重要缺点是递归遍历无法中断。这意味着当React需要更新DOM时,整个更新过程必须一次性完成,不能被打断。如果这个过程耗时过长,将会阻塞主线程,导致用户界面变得不响应。这也是react16引入fiber架构的原因,因为fiber架构允许更新过程被中断,并且可以分批次完成,从而提高了应用的响应性和性能。

标签:数据结构,更新过程,dom,react16,type,children
From: https://www.cnblogs.com/yaoyu7/p/18401028

相关文章

  • 经典数据结构题目解析
    链表1.删除单链表的重复节点遍历法classSolution{public:ListNode*removeDuplicateNodes(ListNode*head){//先检查头节点是否为空,快速判断if(head==NULL){returnNULL;}ListNode*current=head;......
  • 【数据结构和算法实践-位运算-找出数组中出现K次的数,其他数出现M次】
    位运算-找出数组中出现K次的数,其他数出现M次题目MyThought代码示例JAVA-8题目一个数组中,一个数出现了K次,另外其他的数出现了M次,找出出现K次的数MyThought一、设置一个长度为32的int[]temp,把arr中的每个数都变成2进制,放入temp中1、设置长度为32的int数组2......
  • 数据结构-----栈 、队列
    1.数据结构中的栈和系统栈的区别        数据结构中的栈(Stack)与系统栈在本质上是相似的,都遵循“先进后出”(LastInFirstOut,LIFO)的原则,但它们在应用场景、实现方式和管理方式上存在显著的区别。1.1数据结构中的栈定义与特性:数据结构中的栈是一种特殊的线性表......
  • 数据结构与算法 第10天(图的应用)
    一、最小生成树生成树:所有顶点均由边连接在一起,但不存在回路一个图可以有多颗不同的生成树 生成树特点:生成树的顶点个数与图的顶点个数相同;生成树是图的极小连通子图,去掉一条边则非连通,一个有n个顶点的连通图的生成树有n-1条边;在生成树中再加一条边必然形成回路,......
  • 数据结构 栈 队列
    系统栈:保护局部变量函数的形参和返回值函数的调用关系(保护现场,恢复现场操作,遵循先进后出,后进先出)数据结构栈(顺序栈,链式栈):同样遵遵循先进后出,后进先出原则只允许从一端进行数据的插入和删除的线性存储结构数据的插入--->入栈     数据的删除----->出栈顺序栈:......
  • 队列-数据结构
    一、队列FIFO特点:先进先出,后进后出允许从一段插入数据,另一端删除数据的线性存储结构队尾:插入数据入队队头:删除数据出队管道实质上也是一个队列。用途:缓存数据(主要是避免两者速度不匹配的,数据存取速度不匹配。)二、队列类型2.1、顺序队列顺序队列---------》假溢出--......
  • 数据结构-绪论
    1.可以用抽象数据类型定义有一个完整的数据类型。抽象数据类型包括数据对象,数据关系,抽象运算。数据结构:逻辑结构+数据运算。2.有序表属于逻辑结构。有序表是一种逻辑结构,它只描述了数据元素之间的逻辑关系,而与实际的物理存储方式无关。这种逻辑上的有序性意味着表中的元素......
  • 数据结构练习题(java版)考前必备!
    今天我们刷一些栈队列的题目,大家还是先看题,后看题解。1.155.最小栈-力扣(LeetCode)思路:创建两个栈,一个栈所有元素都算,另一个栈只放小的元素,第二个栈中如果要放的元素比栈顶的元素小就放,这样我们直接pop第二个栈就能得到最小栈classMinStack{publicStack<Integer>......
  • Java数据结构---Queue
    队列Queue队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。入队列(Enqueue):进行插入操作的一端称为队尾出队列(Dequeue):进行删除操作的一端称为队头队列具有先进先出的特性大家可以简单理解为日常生活中“排队”这一现象。队列的模拟实现简单想一想,因为Lin......
  • 数据结构-栈、队列-相关练习
    数据结构-栈、队列-相关练习1.用队列实现栈2.用栈实现队列3.设计循环队列1.用队列实现栈用队列实现栈题目概述:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop和empty)。这里只讲大致思路,如下图:互相倒就行了,下面讲个具体......