React中的componentWillUnmount 使用

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

componentWillUnmount 内部的逻辑应该完全"对应"到 componentDidMount 内部的逻辑,例如,如果你在 componentDidMount 中设置了一个监听事件,那么 componentWillUnmount 中就应该清除掉这个监听事件。如果你的 componentWillUnmount 的清理逻辑中读取了一些 props 或者 state,那么你通常还需要实现一个 componentDidUpdate 来清理使用了旧 props 和 state 的资源(例如监听事件)。

复制代码
import React from 'react';
import './App.css';


class Bpp extends React.Component {

  componentWillUnmount() {
    console.log('组件卸载');
  }
  render() {
    return (
      <div>
        <h1>我是Bpp组件</h1>
      </div>
    );
  }
}

class App extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
     bpp_show:true

    };
  }

  
  componentDidMount() {
    console.log('组件挂载完成');
  }
  //定义事件
  click = () => {
    this.setState({
      bpp_show:false
    })  }
  // 渲染组件UI,返回React元素
  render() {
    const { bpp_show } = this.state;
    return (
      <div>
        {bpp_show && <Bpp></Bpp>}
        <button onClick={this.click}>
      隐藏bpp
        </button>
      </div>
  
  )

  }
}

export default App;
相关推荐
焰火199917 分钟前
[Vue]可重置的响应式状态reactive
前端·vue.js
陆枫Larry18 分钟前
CSS transform scale:图片放大效果背后的原理
前端
源码宝20 分钟前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
昇腾CANN26 分钟前
TileLang-Ascend 算子性能优化方法与实操
开发语言·javascript·性能优化·昇腾·cann
老王以为27 分钟前
为什么 React 和 Vue 不一样?
前端·vue.js·react.js
web打印社区29 分钟前
2026最新Web静默打印解决方案,无插件无预览,完美替代Lodop
前端·javascript·vue.js·electron·pdf
这个DBA有点耶1 小时前
分组排名不用窗口函数?那你还在写几十行的子查询
前端·代码规范
ZhiqianXia1 小时前
《The Design of Design》阅读笔记
前端·笔记·microsoft
有马贵将1 小时前
【5】微前端知识点总结
前端·架构
mkae1 小时前
eBPF高性能版fail2ban
前端