多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# React ## props && state 1. props是不可变的,而state是可以根据用户的交互来改变的。 2. props不可改变是指在组件本身中修改,不过因为组件中的props本质作用是一种父级向子级传递数据的方式,所以可以在父组件中修改。 3. React 中更新组件的state,会导致重新渲染用户界面(不需要操作DOM),简单来说就是用户界面会随着state变化而变化 ## 路由实现原理 > TODO ## 虚拟DOM && Diff算法 ### 虚拟DOM React在Virtual DOM上实现了DOM diff算法,当数据更新时,会通过diff算法计算出相应的更新策略,尽量只对变化的部分进行实际的浏览器的DOM更新,而不是直接重新渲染整个DOM树,从而达到提高性能的目的。 ### Diff算法 > [相关网址](https://segmentfault.com/a/1190000010686582) 虚拟DOM树分层比较,忽略DOM节点跨层级的移动操作。React只会对相同颜色方框内的DOM节点进行比较,即同一个父节点下的所有子节点。当发现节点已经不存在,则该节点及其子节点会被完全删除掉,不会用于进一步的比较。这样只需要对树进行一次遍历,便能完成整个DOM树的比较。 如果真的发生跨级移动的话,React是删除原来的,再新建一个挂到DOM树上。