当前位置: 首页 > 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.yayakq.cn/news/536794/

相关文章:

  • 保健品 东莞网站建设做书评的网站
  • 有没有可以免费做试卷的网站_最好可以学会...深圳 网站开发
  • 北京网站建设一条龙阿里云做电影网站
  • 登陆国外的网站要这么做娱乐城网站建设
  • 上海网络做网站公司江阴安泰物流有限公司网站谁做的
  • 广东建设网证件查询黑帽seo是什么意思
  • 买源码做网站简单嘛滨州论坛网站建设
  • 现在网站还用asp做网站开发导航
  • wordpress禁止外链廊坊首页霸屏优化
  • 做相册网站中国空间站有多大
  • .net 网站关键字架设仿冒网站挂马
  • 网站搭建学什么软件兼职开发网站开发
  • 江都区城乡建设局网站马局网页设计与制作学什么
  • 如果做网站运营2022最新泛站群程序
  • 网站推广方案书主机屋wordpress建站
  • 巩义建设网站网站开发 毕业答辩ppt
  • 校园网站建设管理及责任表泊头网站优化
  • 网站建设中页面源码2024小学生时事新闻十条
  • 泉州网站建设公司推荐做个淘宝客网站怎么做的
  • 网站优化推广培训好的网站建设公司哪家好
  • 建设一个网站得多少钱可信赖的网站建设公司
  • 网站开发工程师工资多少宣城网站建设电话
  • 网站开发使用软件环境硬件环境苏州公司网站建设服务
  • 合肥网站seo公司网站开发公司建站源码
  • 泰安网站seo开源的企业网站管理系统
  • 网站的推广方案的内容有哪些英语写作网站
  • 门户网站建设维护后端开发技术
  • 码云可以做博客网站吗网上商城英文
  • 正中路桥建设发展有限公司网站photoshop 做网站logo
  • 知名网站开发语言免费注册个人网站官网