文章29 | 阅读 13239 | 点赞0
参考链接:
两个生命周期,分别是组件的生命周期,和状态变更的声明周期
组件结构:
父组件套用子组件
初次渲染:
总结:
state 被改变:
总结:
componentDidUpdate
);需要则继续下一步;建议参照 DEMO 查看。
使用说明:
即父组件第 2n+1 次点击渲染,2n 次不渲染;子组件是父组件第 2n 次渲染时,不渲染,第 2n+1 次渲染时,渲染;
| 生命周期钩子函数 | 执行时间 | 描述 |
|
| constructor | 创建组件时调用 | 显然创建组件时,会第一时间调用这个 |
| componentWillMount | 组件挂载前 | 在组件挂载之前调用一次。如果在这个函数里面调用setState,本次的render函数可以看到更新后的state,并且只渲染一次。 |
| componentDidMount | 组件挂载后 | 此时子组件挂载好了,可以在这里使用 refs。<br>注意,在此之前子组件会先执行完生命周期钩子(比如子组件的这个函数比父组件的这个函数优先执行) |
| componentWillReceiveProps(nextProps) | 父组件的 state 改变后,子组件的这个函数会被执行 | 父组件的 state 被改变后,子组件的这个函数会执行(参数是props,包括改变的和未改变的),并且子组件的 render 函数随后会被执行 |
| shouldComponentUpdate(nextProps, nextState) | state 被改变后(包括父组件),这个函数会被执行;<br> return true 会触发render和子组件的这个函数(默认true)<br> return false 值已被修改但不会触发 render; | 返回true,会导致先执行父组件的 render(渲染),再执行子组件的 componentWillReceiveProps(子组件props更新),再执行子组件的 shouldComponentUpdate(子组件是否渲染);如果子组件返回true,则依次类推;<br> 返回false,上面后续的全部不会执行 |
| componentWillUpdate(nextProps, nextState) | shouldComponentUpdate 返回 true 后,执行这个(更新前) | 上面返回 true 才会执行,否则不会 |
| render | 渲染函数 | 这个是核心,一般返回 JSX 语法的 DOM;<br>建议不要在这里修改state的值 |
| componentDidUpdate(preProps, preState) | 渲染完毕后执行 | 先执行子组件的这个函数,再执行父组件的这个函数。<br>注意,这里的2个参数,是之前的 state 的值,而不是最新的 state 的值,如果要拿最新的,请通过 this.state.xx 来获取 |
| componentWillUnmount | 组件卸载时执行 | 卸载时执行 |
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq20004604/article/details/79318192
内容来源于网络,如有侵权,请联系作者删除!