React之生命周期函数

1、新增知识点

/*
https://reactjs.org/docs/react-component.html

React生命周期函数:
    组件加载之前,组件加载完成,以及组件更新数据,组件销毁。
    触发的一系列的方法 ,这就是组件的生命周期函数

组件加载的时候触发的函数:
    顺序:constructor -> componentWillMount -> render -> componentDidMount

组件数据更新的时候触发的生命周期函数:
    shouldComponentUpdate -> componentWillUpdate -> render - >componentDidUpdate

你在父组件里面改变props传值的时候触发的:
    componentWillReceiveProps

组件销毁的时候触发的:
    componentWillUnmount

必须记住的生命周期函数:
    *加载的时候:componentWillMount、 render 、componentDidMount(dom操作)
    更新的时候:componentWillUpdate、render、componentDidUpdate
    *销毁的时候: componentWillUnmount
*/

2、案例实现

import React, { Component } from ‘react‘;
class Lifecycle extends Component {
    constructor(props) {
        console.log(‘01构造函数‘);
        super(props);
        this.state = {
            msg:‘我是一个msg‘
         };
    }

    //组件将要挂载的时候触发的生命周期函数
    componentWillMount(){
        console.log(‘02组件将要挂载‘);
    }

    //组件挂载完成的时候触发的生命周期函数
    componentDidMount(){
        //dom操作放在这个里面    请求数据也放在这个里面
        console.log(‘04组件将要挂载‘);
    }

    //是否要更新数据  如果返回true才会执行更新数据的操作
    shouldComponentUpdate(nextProps, nextState){
        console.log(‘01是否要更新数据‘);
        console.log(nextProps);
        console.log(nextState);
        return true;
    }

    //将要更新数据的时候触发
    componentWillUpdate(){
        console.log(‘02组件将要更新‘);
    }

    //组件更新完成
    componentDidUpdate(){
        console.log(‘04组件数据更新完成‘);
    }

    // 你在父组件里面改变props传值的时候触发的
    componentWillReceiveProps(){
        console.log(‘父子组件传值,父组件里面改变了props的值触发的方法‘)
    }

    setMsg=()=>{
        this.setState({
            msg:‘我是改变后的msg的数据‘
        })
    }

    //组件销毁的时候触发的生命周期函数   用在组件销毁的时候执行操作
    componentWillUnmount(){
            console.log(‘组件销毁了‘);
    }

    render() {
        console.log(‘03数据渲染render‘);
        return (
            <div>
                生命周期函数演示--- {this.state.msg}-----{this.props.title}
                <br />
                <br />
                <button onClick={this.setMsg}>更新msg的数据</button>
            </div>
        );
    }
}
export default Lifecycle;

原文地址:https://www.cnblogs.com/ywjfx/p/10430812.html

时间: 2024-11-10 21:08:30

React之生命周期函数的相关文章

react 的生命周期函数

生命周期函数: 是指在某一时刻组件自动执行 的函数 初始化: 设置props和state mounting: componentWillMount 在组件即将被挂载到页面的时候自动执行 render 组件在页面上进行挂载 componentDidMount 在组件被挂载到页面的时候后自动执行 updation:组件更新 props =>componentWillPeceiveProps=>shouldComponentUpdate=> componentWillUpdate=>re

React之生命周期函数(16.3以后新版本)

学习链接: https://www.jianshu.com/p/514fe21b9914 学习链接:https://zhuanlan.zhihu.com/p/38030418 学习链接:https://medium.com/@baphemot/understanding-react-react-16-3-component-life-cycle-23129bc7a705 原文地址:https://www.cnblogs.com/nayek/p/12375434.html

React生命周期函数的使用场景

使用shouldComponentUpdate( ) 生命周期函数,减少render函数的执行,减少对未发生改变的DOM结点的重复渲染. shouldComponentUpdate(nextProps, nextState) { if(nextProps.content !== this.props.content) { return true }else { return false } } render() { console.log('child render') const { cont

React 学习(四) ---- 生命周期函数

现在我们能修改状态,页面可以进行交互了,但是还有一种状态改变没有解决,那就是倒计时效果,时间一直在变化,组件状态也一直在改变,但我们什么都没有做,如果要实现这样的效果,需要怎么处理? 我们都知道,改变状态用的是setState,  上次讲的加减操作是在把它写到事件处理函数中来改变状态的,但现在没有什么事件供我们调用,因为我们没有做任何操作,它却一直在变化,现在要做的就是找一个机会或入口,来写setState 函数, 这个机会就是组件的生命周期函数. 生命周期也是来源于对我们对现实生活的思考, 对

React组件安装使用和生命周期函数

React安装在使用react时 需要安装 两个模块 react react-dom 初始化时 需要用到react-dom中的render方法 具体如下: import ReactDOM from "react-dom" ReactDOM.render(<div>test</div>,document.getElementById("app"),()=>{ console.log("应用初始化完毕") }) 或者 i

ionic中的生命周期函数

//ionic中的生命周期函数 onPageLoaded(){ //page初始化时 console.log("page 1 : page loaded"); } //在这里可以做页面初始化的一些事情 onPageWillEnter(){ //page即将进入时 console.log("page 1 : page will enter"); } onPageDidEnter(){ //page进入后 console.log("page 1 : page

关于React的生命周期

React 的主要思想是通过构建可复用组件来构建用户界面.所谓组件其实就是 有限状态机,通过状态渲染对应的界面,且每个组件都有自己的生命周期,它规定了组件的状态和方法需要在哪个阶段进行改变和执行.有限状态机(FSM),表示有限个状态以及在这些状态之间的转移和动作等行为的模型.一般通过状态.事件.转换和动作来描述有限状态机.React 通过管理状态来实现对组件的管理. 虽然组件.状态机.生命周期这三者都不是 React 独创,如果熟悉 Web Components 标准,它与其中的自定义组件的生命

为什么Activity生命周期函数是运行在UI线程

这是我自己给自己提的问题,或者说是Activity的生命周期函数是怎样运行在主线程的?下面简单分析一下,讨论的问题其实远远不止于这个问题.会涉及到进程的启动,Binder的线程池,ActivityThread中的消息处理. 进程开启 我们最开始接触Android的时候,都知道主线程和非主线程区别,我们可以用Handler来将代码运行在主线程中.而主线程是如何开启的呢?在ActivityThread当中有个公有静态main方法,每次ActivityManagerService请求Zygote进程f

Cocos2d-x场景生命周期函数介绍

层(Layer)的生命周期函数有例如以下: init().初始化层调用. onEnter().进入层时候调用. onEnterTransitionDidFinish().进入层并且过渡动画结束时候调用. onExit().退出层时候调用. onExitTransitionDidStart(). 退出层并且開始过渡动画时候调用. cleanup(). 层对象被清除时候调用. 提示  层(Layer)继承于节点(Node),这些生命周期函数根本上是从Node继承而来.其实全部Node对象(包含:场景