React源码之Diff算法

2017-08-16
阅读 8 分钟
17.9k
为什么会说传统DOM操作效率低呢?当使用document.createElement()创建了一个空的Element时,会需要按照标准实现一大堆的东西,如下图所示。此外,在对DOM进行操作时,如果一不留神导致回流,性能可能就很难保证了。

React源码之setState

2017-08-16
阅读 4 分钟
4k
在我们对组件的状态进行修改时几乎一定会用到的就是setState方法,而较为常见的使用方式就是传入一个对象。从官网的文档中可以看到:这种形式的setState()是异步的,在同一个循环(cycle)中调用多次会被batch到一起,并且在一个cycle中调用多次increment最终却只会进行一次。那么,setState方法究竟在框架内部做了哪些工...

React源码系列之初次渲染

2017-08-16
阅读 2 分钟
2k
首先需要申明在React经常会提到的一些类型:ReactCompositeComponent是自定义组件(复合组件),ReactDOMComponent指的是浏览器自带标签,ReactDOMTextComponent是针对文本节点的。三者面向的类型不同,但它们的挂载方法都叫做mountComponent(React做了很多的抽象封装,使各个函数功能能够处理各种结点等而不需要处处修改)...