当前位置: 首页 > news >正文

怎么做整蛊网站wordpress共享插件

怎么做整蛊网站,wordpress共享插件,网站建设呼和浩特,网站如何做seo推广方案挂载时更新时 setState触发更新、父组件重新渲染时触发更新forceUpdate触发更新卸载时 react(v17.0.2)的生命周期图谱如下。 相较于16版本,17版本生命周期函数有如下变化: componentWillMount() componentWillUpdate() compone…
  • 挂载时
  • 更新时
    • setState触发更新、父组件重新渲染时触发更新
    • forceUpdate触发更新
  • 卸载时

react(v17.0.2)的生命周期图谱如下。 

在这里插入图片描述 

 

相较于16版本,17版本生命周期函数有如下变化:

componentWillMount()
componentWillUpdate()
componentWillReceiveProps()
+getDerivedStateFromProps(props,state)
+getSnapshotBeforeUpdate(prevProps,prevState)
虽然UNSAFE_componentWillMount、UNSAFE_componentWillUpdate、UNSAFE_componentWillReceiveProps当前依然可用,但在react未来的版本中可能被移除,所以尽量避免使用。更多可以访问如下链接:

 https://react.docschina.org/docs/react-component.html。
https://react.docschina.org/blog/2018/03/27/update-on-async-rendering.html。

挂载时

组件挂载时,会依次调用如下生命周期函数:

  1. constructor(props)
  2. static getDerivedStateFromProps(props)
  3. render()
  4. componentDidMount()

 其中,getDerivedStateFromProps必须用static修饰,它是类上的方法。且必须返回null或者状态对象(State Obect)。

getDerivedStateFromProps在实际开发中几乎不用,仅适用于state唯一取决于props的场景。

 

更新时

setState触发更新、父组件重新渲染时触发更新

setState、父组件重新渲染触发更新时,会依次调用如下生命周期函数:

1、static getDerivedStateFromProps()
2、shouldComponentUpdate(nextProps,nextState)
3、render()
4、getSnapshotBeforeUpdate(prevProps,prevState)
5、componentDidUpdate(prevProps,prevState,snapshot)

其中,getSnapshotBeforeUpdate(prevProps,prevState)必须返回null或任意快照值(Snapshot Value,undefined除外)。返回的快照值将作为componentDidUpdate的第三个形参。

forceUpdate触发更新

forceUpdate触发更新,会依次调用以下生命周期函数:

  1. static getDerivedStateFromProps()
  2. render()
  3. getSnapshotBeforeUpdate()
  4. componentDidUpdate()

 

卸载时

组件卸载时,会调用生命周期函数:

  1. componentWillUnmount()

在这里插入图片描述

 

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>test</title><script src="https://unpkg.com/react@17.0.2/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.development.js"></script><script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head><body><div id="app"></div><script type="text/babel">class Count extends React.Component{constructor(props){console.log("Count---constructor");super(props);this.state = {count:0}}componentDidMount(){console.log("Count---componentDidMount");}static getDerivedStateFromProps(){console.log("Count---getDerivedStateFromProps");return null;}shouldComponentUpdate(){console.log("Count---shouldComponentUpdate");return true;}getSnapshotBeforeUpdate(){console.log("Count---getSnapshotBeforeUpdate");return null;}componentDidUpdate(){console.log("Count---componentDidUpdate");}componentWillUnmount(){console.log("Count---componentWillUnmount");}death = () => {ReactDOM.unmountComponentAtNode(document.getElementById("app"));}add = () => {const {count} = this.state;this.setState({count:count+1})}force = () => {this.forceUpdate();}render(){console.log("Count---render");const {count} = this.state;const {add,death,force} = this;return (<div><h2>当前值为:{count}</h2><button onClick={add}>点我加1</button>&nbsp;<button onClick={force}>强制更新</button>&nbsp;<button onClick={death}>卸载组件</button></div>)}}ReactDOM.render(<Count/>,document.getElementById("app"));</script>
</body></html>

 

http://www.yayakq.cn/news/352097/

相关文章:

  • 福州婚庆网站建设哪家好互联网运营培训班哪个好
  • 合肥科技网站建设烟台网站建设方案咨询
  • 一叶子电子商务网站建设策划书网站建设专业的公司
  • 网站外链坏处广州市番禺区
  • 廊坊网站建设-纵横网络 网站文创产品设计公司
  • 优化seo网站百度网盘下载慢怎么解决
  • 网站数据库头条短链接生成短网址生成
  • 凡科网怎么建网站西宁网站建设报价cu君博規范
  • 关于1-6月网站建设工作通报河南搜索引擎优化
  • 东莞建设网站培训域名买了怎么做网站
  • 天柱建设局网站网站网络优化服务
  • 做推广必须知道的网站吗站酷网素材图库
  • php开发手机端网站开发济宁网站建设推荐
  • 郑州网站开发与建设上海发布首页
  • 用linux做网站网站建设与管理名词解释
  • 企业网站成品源码北京seo排名技术
  • 做网站的公司赚钱吗网页设计常见的布局形式
  • 如何做好网站优化网站风格趋势
  • 网站多大需要服务器涂料厂做网站有用吗
  • 地税网站如何做税种确认优秀网站案列
  • 数字营销的优势有哪些英文谷歌seo
  • 郑州网站高端设计商业网站建设案例教程
  • 电子商务网站建设与管理理解商城小程序价格
  • 网站怎么添加百度地图成年人正能量入口
  • 一元云购网站建设教程大型公司办公室设计
  • 网站后台重置密码怎么做网站内的新闻怎样做链接
  • 洛阳市住房和城乡建设网站郑州男科哪家比较正规医院
  • 音乐网站设计素材肇庆软件建网站公司
  • 外贸网站建设需求做算命网站赚钱吗
  • 企业网站开发与管理网站报备查询