New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[react] 说说你对React的渲染原理的理解 #950
Comments
自上而下的单向数据流 |
这个问题我感觉可能描述的不全面,先讲一下我的描述吧: |
|
感觉可以从以下几个方面回答: |
从一个完整的流程来说:首先编写的jsx会被转换执行返回node对象,node对象就可以理解为是虚拟dom,渲染时都会将老的虚拟dom和新的虚拟dom来进行比对,比对的过程中就涉及到了diff算法,只比较同一层的节点,节点tag不同,就不再比较,以新的节点为准,节点相同就比较key,key不同也会以新节点为准;之后就将最终的虚拟dom,再渲染在浏览器中;props,state的更新也会触发这一流程 |
React整个渲染机制就是React会调用React.render()构建一颗DOM树 |
1.render函数,调用React.createElement接收type,options,childrens,生成虚拟dom。 |
感觉可以通过VDOM和diff算法来答,还可以再加上 |
针对“单向数据流”的含义,我看有的文章指的是数据流向只能父组件到子组件,有的文章又像上面说的数据驱动视图。后者才是原本的含义吧? |
React的渲染原理涉及到Virtual Dom(虚拟DOM),当state或props改变时.利用Diff算法与之前的树进行对比,计算出Virtual DOM中真正变化的部分进行更新并渲染到页面上,实现按需更新减少对真实DOM操作,实现性能优化. |
三者是怎么配合的了?
另外也可以看mount和update在render和commit阶段如何工作的?
|
[react] 说说你对React的渲染原理的理解
The text was updated successfully, but these errors were encountered: