怎么掌握React组件树遍历技巧


这篇文章主要介绍“怎么掌握React组件树遍历技巧”,在日常操作中,相信很多人在怎么掌握React组件树遍历技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握React组件树遍历技巧”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!本文对应的 react 版本是 18.2.0下面的 dom 结构react 内部是如何遍历的在 render 时调用 commitPassiveUnmountOnFiber 函数commitPassiveUnmountOnFiber 处理不同的 WorkTag,并调用 recursivelyTraversePassiveUnmountEffectsrecursivelyTraversePassiveUnmountEffects 根据当前 Fiber 的子节点有没有 passive effectuseEffectuseLayoutEffect)来决定是否遍历当前 Fiber 的子节点具体从哪个兄弟节点开始遍历,react 选择的是离退出循环的那个叶子节点的父节点,检查有没有子节点,以此循环遍历如果子节点有 passive effect,则优先遍历子节点 (深度优先),直到找到最终的叶子节点,退出当前循环然后进入兄弟节点,开始遍历兄弟节点的子节点直到最后找到所有有 passive effect 的节点代码简化:首先从根组件开始 FiberRootNode,取到 current也就是说 FiberRootNode.currentdiv#root 这是一个 fiber,它的 tag3由于 App 的子组件有 passive effect,所以会进入 App 组件,它的 tag0App 组件中节点是

tag5

  • 下面有两个子元素

  • 先遍历 它的 tag5

  • 内部只有一个文本节点,没有 passive effect

    • 所以 react 不遍历了(跳出当前遍历的循环,也就是 button 这条不在遍历了)

  • 跳出循环后,查看 button 的兄弟节点,它的兄弟节点是 tag0

  • 由于 节点的子节点没有 passive effect,所以跳出循环,结束整个遍历

  • 遍历逻辑如下图所示

    图中画绿色勾的都会被遍历,红色勾是遍历的顺序

    到此,关于“怎么掌握React组件树遍历技巧”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 怎么搭建React Native开发环境
  2. 如何写出漂亮的React组件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@byun.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

react

  • 上一篇新闻:

    SQLServer的行级安全性是什么
  • 下一篇新闻:

    Vue2怎么安装使用MonacoEditor

猜你喜欢

  • python如何检查对象的内存占用情况
  • java如何使用substring()方法反转字符
  • 如何使用python实现列表反转
  • linux如何使用rm命令删除目录
  • java如何使用Byte数组反转字符
  • java如何通过交换实现字符反转
  • java如何使用String charAt方法反转字符
  • python如何将元素进行重复
  • python如何判断字符串是不是回文串
  • js如何通过字符获取位置或通过位置获取字符

最新资讯
  • Python虚拟机中的Codeobejct有什么作用
  • Python怎么实现获取乱序列表排序后的新下标
  • 怎么利用Golang泛型提高编码效率
  • 基于Python怎么实现文件分类器
  • 怎么用Python制作一个愚人节整蛊消息框
  • Nginx中的upstream模块如何使用
  • Python3中str、bytes、bytearray转化的方法是什么
  • 怎么使用Python+tkinter编写一个强制表白神器
  • Go语言数组和切片的区别有哪些
  • Python定时任务触发的方法是什么
相关推荐
  • 怎么编写react组件
  • 如何使用React + Redux + React-router构建可扩展的前端应用
  • 怎样深入理解react
  • 怎么在React中做到jQuery-free
  • 模块联邦实现微应用的方法步骤
  • React架构的演变之如何理解Hooks的实现
  • React 17有哪些优点
  • 如何通过欺骗性的React元素实现XSS
  • React项目的打包与部署方法
  • 怎么接地气地接入微前端

相关标签

reactjs
react-devtools
react-native
reactor
react生命周期
react native
react.js
react hook
reactnative
reactive
create-react-app
react-redux
react-navigation
react16
react-bootstrap
react组件
react hooks
react-router
unchecked
FormRequest

下面有两个子元素

  • 先遍历 它的 tag5

  • 内部只有一个文本节点,没有 passive effect

    • 所以 react 不遍历了(跳出当前遍历的循环,也就是 button 这条不在遍历了)

  • 跳出循环后,查看 button 的兄弟节点,它的兄弟节点是 tag0

  • 由于 节点的子节点没有 passive effect,所以跳出循环,结束整个遍历

  • 遍历逻辑如下图所示

    图中画绿色勾的都会被遍历,红色勾是遍历的顺序

    到此,关于“怎么掌握React组件树遍历技巧”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

    推荐阅读:
    1. 怎么搭建React Native开发环境
    2. 如何写出漂亮的React组件
    3. 免费云主机域名

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@byun.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    react

    • 上一篇新闻:

      SQLServer的行级安全性是什么
    • 下一篇新闻:

      Vue2怎么安装使用MonacoEditor

    猜你喜欢

    • python如何检查对象的内存占用情况
    • java如何使用substring()方法反转字符
    • 如何使用python实现列表反转
    • linux如何使用rm命令删除目录
    • java如何使用Byte数组反转字符
    • java如何通过交换实现字符反转
    • java如何使用String charAt方法反转字符
    • python如何将元素进行重复
    • python如何判断字符串是不是回文串
    • js如何通过字符获取位置或通过位置获取字符

    先遍历 它的 tag5 内部只有一个文本节点,没有 passive effect所以 react 不遍历了(跳出当前遍历的循环,也就是 button 这条不在遍历了)跳出循环后,查看 button 的兄弟节点,它的兄弟节点是 tag0由于 节点的子节点没有 passive effect,所以跳出循环,结束整个遍历图中画绿色勾的都会被遍历,红色勾是遍历的顺序到此,关于“怎么掌握React组件树遍历技巧”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@byun.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    相关推荐: 如何使用React Router v6添加身份验证

    这篇文章主要讲解了“如何使用ReactRouterv6添加身份验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用ReactRouterv6添加身份验证”吧!React Router v6是React应用…

    免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

    (0)
    打赏 微信扫一扫 微信扫一扫
    上一篇 06/30 18:07
    下一篇 06/30 18:07

    相关推荐