You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Virtual DOM 在内存中是以对象的形式存在的,React基于Virtual DOM 实现了一个SyntheticEvent(合成事件)层,
我们所定义的事件处理器会接收到一个SyntheticEvent对象的实例,同样支持事件的冒泡机制,
可以使用stopPropagation()和preventDefault()中断
React核心
React组件
React组件构建
static protoTypes
static defaultProps
组件之间通信
React数据流
1.1 state
React没有结合Flux或Redux框架之前,使用state管理组件自身内部状态
setState是一个异步方法,一个生命周期内所有的setState方法会合并操作
1.2 props
React的单向数据流,主要的流动体现在props,props本身是不可变的.
defaultProps用来定义props的默认配置.
React与DOM
2.1 ReactDOM的API
2.11 findDOMNode
在
compomemtDidMount
和componentDidupdate
中,我们可以获得真正的DOM元素2.12 render
2.13 unmountComponentAtNode
2.14 refs
生命周期
事件系统
Virtual DOM 在内存中是以对象的形式存在的,React基于Virtual DOM 实现了一个
SyntheticEvent
(合成事件)层,我们所定义的事件处理器会接收到一个
SyntheticEvent
对象的实例,同样支持事件的冒泡机制,可以使用
stopPropagation()
和preventDefault()
中断所有事件都自动绑定到最外层上,如果需要访问原生事件对象,可以使用
nativeEvent
属性React中的合成事件的实现机制
在React底层,主要对合成事件做的下面两件事:
事件委派
自动绑定
React组件中,每个方法的上下文都会指向这个组件的实例,即自动绑定this为当前组件,并对这种引用进行缓存,以达到CPU和内存的最优化
使用ES6 classes或者纯函数时,React的自动绑定就不存在了,需要手动实现this绑定
2.1 bind 绑定
+ 绑定事件处理器内的this
+ 向事件处理器中传递参数
+ 如果只绑定,不传参,例子如下:
```js
import React,{Component} from 'react';
2.2 构造器内声明
+ 仅需要进行一次绑定
```js
import React,{Component} from 'react';
2.3 箭头函数
在React中使用原生事件
在
componentDidMount
生命周期及以后可以进行原生事件绑定在组件卸载时手动移除,否则会出现内存泄露的问题
组件间抽象
组件性能优化
The text was updated successfully, but these errors were encountered: