REACT March 27, 2018

React 源码分析 6 React合成事件系统

Words count 18k Reading time 16 mins.

React自己实现了一套高效的事件注册,存储,分发和重用逻辑,在DOM事件体系基础上做了很大改进,减少了内存消耗,简化了事件逻辑,并最大化的解决了IE等浏览器的不兼容问题。与DOM事件体系相比,它有如...

Read article

REACT March 27, 2018

React 源码分析 6 React合成事件系统

Words count 18k Reading time 16 mins.

React自己实现了一套高效的事件注册,存储,分发和重用逻辑,在DOM事件体系基础上做了很大改进,减少了内存消耗,简化了事件逻辑,并最大化的解决了IE等浏览器的不兼容问题。与DOM事件体系相比,它有如下特点

  • 1.React组件上声明的事件最终绑定到了document这个DOM节点上,而不是React组件对应的DOM节点。故只有document这个节点上面才绑定了DOM原生事件,其他节点没有绑定事件。这样简化了DOM原生事件,减少了内存开销
  • 2.React以队列的方式,从触发事件的组件...
Read article

REACT March 27, 2018

React源码分析 5 组件通信,ref,key,ReactDOM

Words count 9.8k Reading time 9 mins.

React规定了明确的单向数据流,利用props将数据从父组件传递给子组件。故我们可以利用props,让父组件给子组件通信。故父组件向子组件通信还是很容易实现的。引申一点,父组件怎么向孙子组件通信呢?可以利用props进行层层传递,使用ES6的…运算符可以用很简洁的方式把props传递给孙子组件。这里我们就不举例了。

要注意的一点是,setProps,replaceProps两个API已经被废弃了,React建议我们在顶层使用ReactDOM.reader()进行props更新。

React数据...

Read article

REACT March 27, 2018

React 源码分析 4 setState机制

Words count 13k Reading time 11 mins.

React作为一门前端框架,虽然只是focus在MVVM中的View部分,但还是实现了View和model的绑定。修改数据的同时,可以实现View的刷新。这大大简化了我们的逻辑,只用关心数据流的变化,同时减少了代码量,使得后期维护也更加方便。这个特性则要归功于setState()方法。React中利用队列机制来管理state,避免了很多重复的View刷新。下面我们来从源码角度探寻下setState机制。

我们都知道setState是以修改和新增的方式改变state的,不会改变没有涉及到的state...

Read article

REACT March 26, 2018

React 源码分析 3 React生命周期详解

Words count 18k Reading time 17 mins.


调用流程可以参看上图。分为实例化,存在期和销毁三个不同阶段。介绍生命周期流程的文章很多,相信大部分同学也有所了解,我们就不详细分析了。很多同学肯定有疑问,这些方法在React内部是在哪些方法中被调用的呢,他们触发的时机又是什么时候呢。下面我们来详细分析。

在React.creatClass()初始化组件类时,会调用getDefaultProps(),将返回的默认属性挂载到defaultProps变量下

这里要提的一点是,初始化组件类只运行一次。可以把它简单类比为Java中的Class对象。初始化...

Read article

REACT March 26, 2018

React 源码分析 2 React组件插入Dom流程

Words count 9.2k Reading time 8 mins.

React广受好评的一个重要原因就是组件化开发,一方面分模块的方式便于协同开发,降低耦合,后期维护也轻松;另一方面使得一次开发,多处复用成为现实,甚至可以直接复用开源React组件。开发完一个组件后,我们需要插入DOM中,一般使用如下代码

ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('example')
);

经过babel转码后为

ReactDOM.render(
        React...
Read article
Load more
0%