react的生命周期

1.引入react的生命周期函数

实现一个需求:页面每2秒慢慢消失,消失后恢复继续

注意事项:

1.这里使用了两个生命周期函数。

2.绑定函数要用this.方法名的方式。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 根节点 -->
     <div id="root"></div>
    <!-- 导入 -->
    <script src="./lib/react.js"></script>
    <script src="./lib/react-dom.js"></script>
    <script src="./lib/babel.js"></script>
    <!-- script代码 -->
     <script type="text/babel">
        // 获取渲染节点
        const root=ReactDOM.createRoot(document.querySelector('#root'))
       
        // 定义组件
        class App extends React.Component{
            state={
                opacity:1
            }
            death=()=>{
                // 卸载组件
                
                root.unmount()
                ReactDOM.unmountComponentAtNode(document.getElementById('root'))
            }
            // 组件挂载完毕
            componentDidMount(){
              this.timer=  setInterval(() => {
                    let {opacity}=this.state
                    opacity-=0.1
                    console.log('定时器')
                    if(opacity<=0)opacity=1
                    this.setState({opacity})//不能直接修改state中的数据,要通过setState的方式
                }, 200);
            }
            // 组件将要卸载
            componentWillUnmount(){
                clearInterval(this.timer)
            }
            // 初始化渲染、状态更新之后
            render(){
                return(
                    <div>
                        <h2 style={{opacity:this.state.opacity}}>react学不会怎么办?</h2>
                        <button onClick={this.death}>不活了</button>
                    </div>
                )
            }
        }
        // render函数渲染组件
        root.render(<App/>)

     </script>
</body>
</html>
2.react生命周期旧组件

更新流程:shoulfComponentUptate()是是否更新的阀门,默认返回一个true.

3.生命周期的三个阶段(旧)

1. 初始化阶段: 由ReactDOM.render()触发---初次渲染

  1. constructor()
    1. componentWillMount()
    2. render()
    3. componentDidMount() ----------常用

2. 更新阶段: 由组件内部this.setSate()或父组件重新render触发

  1. shouldComponentUpdate()
  2. componentWillUpdate()
  3. render()
  4. componentDidUpdate() ----常用

**3.**卸载组件: 由ReactDOM.unmountComponentAtNode()触发

  1. componentWillUnmount()----常用
4.react的生命周期(新)

废弃了三个willreceiveProps,willupdate,willmount,新增了两个生命周期钩子函数

相关推荐
Fighting_p4 分钟前
【面试 - el-select问题及解决】wujie 微前端下子系统 el-select 多选 filterable 过滤失效
前端
吃口巧乐兹5 分钟前
AI 全栈时代,为什么要服务端使用 NestJs
前端
yingyima9 分钟前
Redis 延迟任务队列:凌晨3点服务器报警的救星
前端
weiggle11 分钟前
第三篇:可组合函数(Composable)——Compose 的基石
android·前端
前端环境观察室13 分钟前
别只看 task success:AI Agent 浏览器自动化真正要补的是环境证据链
前端·后端
huakoh14 分钟前
LangChain 实战:用混合检索啃下 1000 页 PDF,搭一个长文档问答 Agent
前端
Dazer00723 分钟前
Edge 浏览器绕过 HTTPS 证书错误
前端·https·edge
元让_vincent30 分钟前
Spark 2.0:面向 Web 的 3DGS 可视化与大场景渲染平台详解
前端·3d·spark·渲染·轻量化·3dgs·lod
KaMeidebaby1 小时前
卡梅德生物技术快报|酵母双杂交 cDNA 文库构建与蛋白互作筛选流程
服务器·前端·数据库·人工智能·算法
沐风___1 小时前
App 上架之后:如何看数据、获取用户与持续迭代产品
服务器·前端·数据库