• componentWillMount VS componentDidMount


    前言

    这与React组件的生命周期有关,组件挂载时有关的生命周期有以下几个:

    constructor(){}
    
    componentWillMount(){}
    
    render(){}
    
    componentDidMount(){}
    

    上面这些方法的调用是有次序的,由上而下,也就是当说如果你要获取外部数据并加载到组件上,只能在组件"已经"挂载到真实的网页上才能作这事情,其它情况你是加载不到组件的。

    componentWillMount VS componentDidMount

    constructor

    被调用是在组件准备要挂载的最一开始,所以此时组件尚未挂载到网页上。

    componentWillMount方法

    • 将要装载,调用在constructor之后,在render之前
    • 每一个组件render之前立即调用
    • 可以在服务端被调用,也可以在浏览器端被调用
      如果你需要在服务器端渲染应用程序,componentWillMount将被调用两次。一次是在server端,一次在客户端,但这并不是你想要的结果而将数据加载逻辑放在componentDidMount将确保数据只从客户端获取
    • 在这方法里的代码调用setState方法不会触发重渲染,所以它一般不会用来作加载数据之用,它也很少被使用到。

    extend component的方式里的constructor函数和componentWillMount是通用的作用,所以你在构造函数里初始化了组件的状态就不必在WillMount做重复的事情了

    componentDidMount方法

    • 装载完成,在render之后调用
    • render之后并不会立即调用,而是所有的子组件都render完之后才可以调用
    • 只能在浏览器端被调用,在服务器端使用react的时候不会被调用
    • 在这方法中调用setState方法,会触发重渲染,所以,官方设计这个方法就是用来加载外部数据用的,或处理其他的副作用代码
    • 是在组件已经完全挂载到网页上才会调用被执行,所以可以保证数据的加载。
  • 相关阅读:
    No necessary symbol fonts
    apt-get Error BrokenCount
    Repository XXX does not have a Realease file
    网页报错:You don't have permission to access
    Operating System not found
    JAVA平台AOP技术研究
    AOP技术基础
    SpringAOP浅析
    CGLIB动态代理
    Java设计模式—Proxy动态代理模式
  • 原文地址:https://www.cnblogs.com/qiqi715/p/10555876.html
Copyright © 2020-2023  润新知