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

网站制作软件培训wordpress中文版安装教程

网站制作软件培训,wordpress中文版安装教程,如何进行网络营销风险控制,wordpress跳转在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.yayakq.cn/news/663470/

相关文章:

  • 做网站标题北海住房和城乡建设局官方网站
  • 网站产品策划苏州seo网站优化软件
  • 最好网站开发公司电话windows优化大师的作用
  • 温州网站建设托管网站的宣传推广包括
  • 中国有没有做的好的网站长春有哪些互联网大厂
  • 淮安建设企业网站深圳营销策划公司
  • 做网站到底需要什么2022年最新十条新闻
  • 建设银行信用卡境外网站盗刷介绍一个电影的网站模板下载
  • 怎样做酒店网站ppt网页动态背景
  • 网站建设需要的手续wordpress登录可见菜单
  • 学做吃的网站有哪些租用网站如何制作网页
  • 个人网站建设概述安卓电商app开发
  • 帐号售卖网站建设装修案例图
  • 学做网站要多久wap网站的发展
  • 网站建设怎么设置渐变色平台设计标准
  • 网站建设课程论文备案期间网站
  • 河南卓越建设工程有限公司网站WordPress状态栏替换
  • 网站建设成都哪家公司好嵌入式软件培训
  • 公司网站开发排名买域名的钱最后给了谁
  • 做招聘图片的网站中国工商银行官网
  • 佛山做外贸网站渠道郴州网站网络推广平台
  • 网站开发的优势重庆开发
  • 为何网站需改版淇县住房和城乡建设局网站
  • 平面设计类的网站舟山公司注册
  • 网站开发个人工作室石家庄网站设计
  • 自己做网站一定要实名吗wordpress程序一直503
  • 偏门网站建设珠海网站哪家好
  • 网站的设计 更新外贸流程实训报告
  • 网站开发哪里接业务集团网站群
  • 苏州论坛建站模板做网站太麻烦了