React框架之生命周期函数

React组件的生命周期

组件的生命周期可分成三个状态:

  • Mounting:已插入真实 DOM
  • Updating:正在被重新渲染
  • Unmounting:已移出真实 DOM

生命周期的方法有:

  • componentWillMount 在渲染前调用,在客户端也在服务端。
  • componentDidMount : 在第一次渲染后调用,只在客户端。之后组件已经生成了对应的DOM结构,可以通过this.getDOMNode()来进行访问。 如果你想和其他JavaScript框架一起使用,可以在这个方法中调用setTimeout, setInterval或者发送AJAX请求等操作(防止异步操作阻塞UI)。
  • componentWillReceiveProps 在组件接收到一个新的 prop (更新后)时被调用。这个方法在初始化render时不会被调用。
  • shouldComponentUpdate 返回一个布尔值。在组件接收到新的props或者state时被调用。在初始化时或者使用forceUpdate时不被调用。
    可以在你确认不需要更新组件时使用。
  • componentWillUpdate在组件接收到新的props或者state但还没有render时被调用。在初始化时不会被调用。
  • componentDidUpdate 在组件完成更新后立即调用。在初始化时不会被调用。
  • componentWillUnmount在组件从 DOM 中移除之前立刻被调用。

代码展示如下:

App.jsx中的代码:

<ComponentLife title={this.state.title} updateTitles = {this.updateTitle}/>
<button onClick={ this.updateTitle }>父级组件修改title</button>

ComponentLife.jsx中的代码:

import React from "react"

export default class Component extends React.Component{

    constructor(props){
        super(props);
        this.state = {
            count : 10
        }
    }

    componentWillMount(){
        console.log("componentWillMount");
    }
    componentDidMount(){
        console.log("componentDidMount");
    }
    shouldComponentUpdate(){
        console.log("shouldComponentUpdate");
        return true;
    }
    componentWillUpdate(){
        console.log("componentWillUpdate");
    }
    componentDidUpdate(){
        console.log("componentDidUpdate");
    }
    componentWillReceiveProps(){
        console.log("componentWillReceiveProps");
    }
    componentWillUnmount(){
        console.log("componentWillUnmount");
    }

    changeHandler = () => {
        this.setState({
            count:this.state.count+=1
        })
    }
    updateTitle = () => {
        this.props.updateTitles();
    }
    
    render(){
        const { count } = this.state;
        return(
            <div>
                 react生命周期函数:{count} -- {this.props.title}
                 <button onClick={ this.changeHandler }>修改</button>
                 <button onClick={ this.updateTitle }>子级组件修改title</button> 
            </div>
           
        )
    }
}

效果展示

页面样式:
在这里插入图片描述
点击两个修改title的按钮出来的效果都一样,如下:
在这里插入图片描述
控制台打印的效果也都一样:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React 和 Vue 是两个流行的 JavaScript 框架,它们都有自己的生命周期方法。React生命周期方法包括: 1. Mounting:组件被创建并且插入到 DOM 中。 - constructor: 组件构造函数 - getDerivedStateFromProps: 从 props 中获取派生状态 - render: 渲染组件 - componentDidMount: 组件挂载到 DOM 上 2. Updating:组件更新,可以是 props 或者 state 的改变。 - getDerivedStateFromProps: 从 props 中获取派生状态 - shouldComponentUpdate: 判断是否需要重新渲染组件 - render: 渲染组件 - componentDidUpdate: 组件更新完成 3. Unmounting:组件被从 DOM 中移除。 - componentWillUnmount: 组件移除前的清理工作 Vue 的生命周期方法包括: 1. Creation:创建阶段,包括实例化、数据观测、模板解析、编译等。 - beforeCreate: 实例创建前调用 - created: 实例创建后调用 - beforeMount: 模板编译/挂载前调用 2. Mounting:挂载阶段,包括模板编译、挂载、渲染等。 - mounted: 模板编译/挂载后调用 3. Updating:更新阶段,包括响应式数据更新、虚拟 DOM 重构、渲染等。 - beforeUpdate: 组件更新前调用 - updated: 组件更新后调用 4. Destruction:销毁阶段,包括实例销毁前的清理工作等。 - beforeDestroy: 实例销毁前调用 - destroyed: 实例销毁后调用 总的来说,React 和 Vue 的生命周期方法有一些相似之处,但是也存在一些差异。React 有一个 shouldComponentUpdate 方法来判断是否需要重新渲染组件,Vue 则没有这个方法,但是提供了一个 watch 选项来观察数据的变化。另外,React生命周期方法是在组件的 class 中定义的,而 Vue 的生命周期方法则是在 Vue 实例中定义的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值