首页 > 其他分享 >react diff 学习之tree diff

react diff 学习之tree diff

时间:2024-09-03 22:15:20浏览次数:10  
标签:层级 tree react 操作 diff 节点


tree diff主要针对的是react dom节点跨层级的操作。什么是跨层级的操作呢?

除同级之外的操作都是跨层级。比如A节点下有B和C,A的同级有个小狗节点,现在把整个A节点移到小狗节点下。

对于这种跨层级操作,react只会进行创建和删除操作,当根节点发现子节点A消失了,就会直接销毁A,当小狗节点发现多了一个子节点A,则会创建新的A(包括它的子节点B和C)。此时,diff的执行情况:createA  →createB →createC →deleteA 。

由此可以发现,当出现跨层级移动时,并不会出现想象中的移动操作,而是以A为根节点的整个树被重新创建。这是一种影响React性能的操作,因此官方不建议进行DOM节点跨层级的操作。

那么从这里我们可以得到一个启示,什么启示呢?尽量用css来显示或者隐藏节点,而不是真正地移除或者添加dom节点。

 

标签:层级,tree,react,操作,diff,节点
From: https://www.cnblogs.com/yaoyu7/p/18393630

相关文章

  • 【前端面试】采用react前后,浏览器-解析渲染UI的变化
    浏览器渲染html浏览器解析和渲染UI(用户界面),特别是HTML文档,是一个复杂的过程,涉及到多个阶段。以下是浏览器从接收HTML文档到显示渲染后的页面的一般步骤:1.下载HTML文档:用户输入URL或点击链接时,浏览器会向服务器请求HTML文档。服务器响应请求,并将HTML文档......
  • npm install时一直idealTree:npm: sill idealTree buildDeps的解决方案
    修改下镜像的地址。1、采用新的镜像地址,进入cmd之后输入://1.npm的命令npmconfigsetregistryhttps://registry.npmmirror.com//2.yarn的命令yarnconfigsetregistryhttps://registry.npmmirror.com2、查看是否安装成功://npm的命令npmconfiggetregi......
  • Stable Diffusion进阶篇,ComfyUI文字生成视频的一条龙服务(附完整工作流)
    有些小伙伴发现了一个问题,那就是根据图片生成出来的视频看着怪怪的:前半段看着好像还可以,但是后面部分的面部就开始崩坏了。而今天这篇笔记则是要简单了解一下一些进阶参数以及一些文生图生视频的内容,不然的话我担心内容太少字数都凑不够。我这里准备了ComfyUI文字生成......
  • Stable Diffusion教程,直接一键安装使用!(附SD整合包)
    ▼今天给大家分享的是**开源免费StableDiffusion教程无需魔法一键安装使用!**下载包里面有安装教程,大家如果有需要自行下载就可以了。StableDiffusion是基于LatentDiffusionModel(LDM)的,LDM是一款顶尖的文转图合成技术。在了解LDM的工作原理之前,让我们先看看什么是......
  • 实战复杂低代码项目React从架构到拆解
    实战复杂低代码项目:‌React从架构到拆解随着技术的不断进步和业务需求的日益复杂,‌低代码平台(‌Low-CodePlatform)‌已成为现代软件开发领域中的热门工具。‌而基于React的低代码平台,‌更是凭借其组件化、‌响应式、‌数据驱动等特性,‌为开发者提供了一种高效构建应用程序的新途......
  • AI绘画实操 Stable Diffusion 到底怎么玩儿,新手必看的AI绘画入门安装使用教程
    大家好,我是灵魂画师向阳2024年,是AI绘画技术飞速发展的一年,各种AI绘画工具层出不穷,为了让大家在了解和学习AI绘画的过程中少走弯路,今天我将详细介绍目前世界上使用用户最多,社区最大,生态最丰富的免费图像生成模型——StableDiffusion,并为你提供详细的安装教程,让你轻松踏入AI......
  • react diff 学习 之 component diff
    所谓的diff算法,其实就是react同时比较两棵虚拟dom树之间的差异,一颗是当前的dom结构,另一棵在react状态变更将要重新渲染时生成。react通过比较这两棵树的差异,决定是否需要修改dom结构,以及如何修改。这种比较过程中的算法称作diff算法。componentdiff是专门针对更新前后的同一层......
  • React-Router V6
    React-RouterV6React路由原理不同的路径渲染不同的组件有两种实现方式HashRouter:利用hash实现路由切换BrowserRouter:实现h5Api实现路由的切换HashRouterHashRouter利用hash实现路由切换public\index.html<!DOCTYPEhtml><htmllang="en"><head>......
  • (多模态)MedM2G: Unifying Medical Multi-Modal Generation via CrossGuided Diffusion
    1.摘要医学生成模型以其高质量的样本生成能力而闻名,加速了医学应用的快速增长。然而,目前的研究主要集中在针对不同医疗任务的单独医学生成模型上,受限于医学多模态知识的不足,制约了医学的综合诊断。在本文中,我们提出MedM2G,即医学多模态生成框架,其关键创新是在统一模型内对齐......
  • (多模态)CoDi:Any-to-Any Generation via Composable Diffusion
    摘要我们提出了可组合扩散(CoDi),这是一种新的生成模型,能够从任何输入模式组合生成任何输出模式组合,如语言、图像、视频或音频。与现有的生成式人工智能系统不同,CoDi可以并行生成多种模式,其输入不限于文本或图像等模式的子集。尽管缺乏许多模式组合的训练数据集,但我们建议在输......