-
生命周期:
-
初始化阶段:constructor中对state、props进行赋值,并且不会调用update
-
挂载阶段
render
componentDidMount
-
更新阶段
-
由props的更新引起的操作
-
componentWillReceiveProps(nextProps, nextState)
可以对state进行设置,合并state
-
shouldComponentUpdate(nextProps,nextState)
返回boolean类型数据。如果返回false,就不继续执行生命周期函数了,不能设置state
-
render
-
componentDidUpdate(prevProps, prevState)
-
-
由state更新引起的操作
- shouldComponentUpdate
- render
- ComponentDidUpdate
-
-
卸载阶段:componentWillUnmount
-
-
refs
-
什么时候使用?
- 管理焦点,文本选择或者媒体播放
- 触发强制动画
- 集成第三方库
-
在class中使用refs
//1. 创建refs this.refs = createRef(); //2. 在需要引用的html标签或者是对象上加上ref={this.refs} //3. 可以通过this.refs.current引用到对象了
-
refs转发
const Button = React.forwardRef((props, ref)=>{ <button ref={ref}> props.children </button> }); const ref = React.createRef(); <Button ref={ref}>click me</Button>
-
-
fragment
render(){ return ( <React.Fragment key={}> </React.Fragment> //或者 <> <td></td> <td></td> </> ) }