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

在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架构允许更新过程被中断,并且可以分批次完成,从而提高了应用的响应性和性能。

posted @ 2024-09-06 21:24  飞向火星  阅读(10)  评论(0编辑  收藏  举报