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

济南做网站得多少钱白度指数

济南做网站得多少钱,白度指数,什么网站做禽苗的多,情侣博客网站模板在React的类组件中,从组件创建到组件被挂载到页面中,这个过程react存在一系列的生命周期函数,最主要的生命周期函数是componentDidMount、componentDidUpdate、componentWillUnmount 生命周期图例如下 1. componentDidMount组件挂载 如果你…

在React的类组件中,从组件创建到组件被挂载到页面中,这个过程react存在一系列的生命周期函数,最主要的生命周期函数是componentDidMount、componentDidUpdate、componentWillUnmount

生命周期图例如下

1. componentDidMount组件挂载

如果你定义了 componentDidMount 方法,React 将会在组件被添加到屏幕上 (挂载) 后调用它。这里是设置数据获取、订阅监听事件或操作 DOM 节点的常见位置。

  • 参数:componentDidMount 不需要任何参数;
  • 返回值:componentDidMount 不应该返回任何值;
  • 场景:多用于组件中进行网络请求,DOM操作等;
  componentDidMount() {console.log("component did mount");}

2. componentDidUpdate组件更新

如果你定义了 componentDidUpdate 方法,那么 React 会在你的组件更新了 props 或 state 重新渲染后立即调用它。这个方法不会在首次渲染时调用

  • 参数:
    • prevProps:更新之前的 props。prevProps 将会与 this.props 进行比较来确定发生了什么改变;

    • prevState:更新之前的 state。prevState 将会与 this.state 进行比较来确定发生了什么改变;

    • snapshot: 如果你实现了 getSnapshotBeforeUpdate 方法,那么 snapshot 将包含从该方法返回的值。否则它将是 undefined

  • 返回值:componentDidMount 不应该返回任何值;

  • 注意:如果在组件中定义了shouldComponentUpdate 并且返回值是 false 的话,componentDidUpdate 将不会被调用。如果在componentDidUpdate 中直接调用 setState方法,会造成触发一次发生在浏览器更新屏幕内容之前的额外渲染,在这种情况下,即使 render 会被调用两次,用户也看不到中间状态。这种模式通常会导致性能问题。

  componentDidUpdate(prevProps, prevState, snapshot) {console.log("component did update");}

3. componentWillUnmount组件卸载

如果你定义了 componentWillUnmount 方法,React 会在你的组件被移除屏幕(卸载)之前调用它。此方法常常用于取消数据获取或移除监听事件。

  • 参数:componentDidMount 不需要任何参数;
  • 返回值:componentDidMount 不应该返回任何值;
  • 注意:componentWillUnmount 内部的逻辑应该完全“对应”到 componentDidMount 内部的逻辑,例如,如果你在 componentDidMount 中设置了一个监听事件,那么 componentWillUnmount 中就应该清除掉这个监听事件,例如定时器任务等。
  componentWillUnmount() {console.log("component willUnmount");}

4. getSnapshotBeforeUpdate组件快照

getSnapshotBeforeUpdateReact 会在 React 更新 DOM 之前时直接调用它。它使你的组件能够在 DOM 发生更改之前捕获一些信息(例如滚动的位置)。此生命周期方法返回的任何值都将作为参数传递给 componentDidUpdate。

  • 参数:
    • prevProps:更新之前的 Props。prevProps 将会与 this.props 进行比较来确定发生了什么改变。

    • prevState:更新之前的 State。prevState 将会与 this.state 进行比较来确定发生了什么改变。

  • 返回值:返回你想要的任何类型的快照值,或者是 null你返回的值将作为第三个参数传递给 componentDidUpdate

  getSnapshotBeforeUpdate(prevProps, prevState) {console.log("getSnapshotBeforeUpdate");return "123"}

运行结果:

用例组件App:

class HelloWorld extends React.Component {constructor() {super()this.state = {banners: ['新歌曲','新mv', '新歌单'],porductsList: ['商品','热门', '流行'],count: 100,}}changeCount(count) {this.setState({count: this.state.count + count})}render() {const { banners, porductsList, count} = this.statereturn (<div><Header /><Main banners={banners} addClick={(count) => this.changeCount(count)} /><Footer porductsList={porductsList}/><div>{count}</div></div>)}componentDidMount() {console.log("component did mount");}getSnapshotBeforeUpdate(prevProps, prevState) {console.log("getSnapshotBeforeUpdate");return "123"}componentDidUpdate(prevProps, prevState, snapshot) {console.log("component did update");console.log("prevProps, prevState, snapshot", prevProps, prevState, snapshot); // snapshot 就是 getSnapshotBeforeUpdate 返回的值 123}componentWillUnmount() {console.log("component willUnmount");}
}

http://www.bjxfkj.com.cn/article/103608.html

相关文章:

  • 像淘客基地这样的网站如何做推一手新闻发稿平台
  • 客户都不愿意做网站老铁seo外链工具
  • 环保网站建设郑州网站技术顾问
  • 永久免费的自建网站推广普通话宣传标语
  • window2008 网站建设市场营销是做什么的
  • 大型网站的空间企业网站管理系统源码
  • 网站建设社区湖北seo
  • 如何设计一个网站没灵感头条搜索是百度引擎吗
  • 2019网站seo网络营销案例实例
  • 营销网站建设工作灰色关键词排名代发
  • 特供邯郸做网站北京专业网站优化
  • 智能网站建设制作win10最强优化软件
  • 高唐网站开发螺蛳粉营销策划方案
  • 做qq的网站seo顾问公司
  • 信用网站建设标准技能培训机构
  • 微信网站制作公司哪家好推广拉新app哪几个靠谱
  • 做网站需要固定ip么seo伪原创工具
  • 做网站小程序挣钱吗青岛网站seo推广
  • 公司网站重新建站通知手机清理优化软件排名
  • markdown做网站编辑器平谷头条新闻
  • 深圳市汇成品牌营销策划有限公司关键词优化推广
  • 字画价格网站建设方案在线磁力搜索引擎
  • 怎么注册网站啊100个商业经典案例
  • 手机网站制作教程视频教程市场调研报告包括哪些内容
  • 一个网站可以做几个关键词泉州关键词优化软件
  • 路桥做网站网络推广方案模板
  • 网站建设英文字体视频app推广
  • 门户网站开发的价格网络营销推广流程
  • 网络服务商能删除网站上海百度推广客服电话多少
  • 公司平台网站建设郑州做网络营销渠道