ducky_L

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

react 虚拟DOM的原理

1、虚拟DOM,就是虚拟节点,通过用一个JS对象表示真实DOM树结构,这个对象就包括标签名,属性,子节点等。然后将其渲染成真是的DOM节点。

2、第一步是模拟,用 JSX 语法写出来的元素其实是一个虚拟节点

  通过转译工具将JSX转换成React.createElement的结构

最后通过createElement得到一个JS对象即虚拟DOM。

3、将虚拟DOM转换成真实DOM:调用ReactDOM.render(element, container[, callback])将组件进行渲染(初始参数处理)-->批处理、事务调用-->生成html-->渲染html

总结:React组件的渲染流程

  • 使用React.createElementJSX编写React组件,实际上所有的JSX代码最后都会转换成React.createElement(...)Babel帮助我们完成了这个转换的过程。

  • createElement函数对keyref等特殊的props进行处理,并获取defaultProps对默认props进行赋值,并且对传入的孩子节点进行处理,最终构造成一个ReactElement对象(所谓的虚拟DOM)。

  • ReactDOM.render将生成好的虚拟DOM渲染到指定容器上,其中采用了批处理、事务等机制并且对特定浏览器进行了性能优化,最终转换为真实DOM

参考自链接:https://juejin.cn/post/6844903824683958286

4、虚拟DOM的优点:让DOM操作的整体性能更好,能减少不必要的DOM操作。

5、缺点:react为虚拟DOM创造了合成事件,如果混用合成事件和原生 DOM 事件,有可能会出 bug。

 

posted on   ducky_L  阅读(324)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示