zoukankan      html  css  js  c++  java
  • React生命周期函数

    react生命周期函数可以分为三个阶段:挂载阶段(Mounting),更新阶段(Updating),卸载阶段(Unmounting)

    挂载阶段(Mounting)

    1.constructor

    2.componentWillMount

    3.render

    4.componentDidMount

    更新阶段(Updating)

    一,props发生变化

    1.componentWillReceiveProps

    2.shouldComponentUpdate

    3.componentWillUpdate

    4.render

    5.componentDidUpdate

    二,state发生变化,props没有发生变化

    1.shouldComponentUpdate

    2.componentWillUpdate

    3.render

    4.componentDidUpdate

    卸载阶段(Unmounting)

    1.componentWillUnmount

    ----------------------------------------------------

    自己想写一个显示时间的组件

    class Clock extends React.Component {
            constructor(props) {
                super(props);
                this.state = {date: new Date()};
            }
            componentDidMount() {
                console.log('componentDidMount');
                this.setState({
                    date: new Date()
                });
            }
            render() {
                console.log('render');
                return (
                    <div>
                        <h1>Hello , World</h1>
                        <h2>Now is {this.state.date.toLocaleTimeString()}</h2>
                    </div>
                );
            }
        }
        //setInterval(changTime,1000);
        ReactDOM.render(
            <Clock/>,
            document.getElementById('example')
        );

    我开始的思路是因为componentDidMount会在组件挂载之后执行,然后在哪里更新state从而render也会执行,那么时间就自然的更新了,

    可惜还是自己太年轻了,其实componentDidMount只会在组件挂载后执行,且只会执行一次,哈哈,所以错了

    发现控制台就输出

    render

    componentDidMount

    render

    然后就什么都没有了,时间还是不会改变

  • 相关阅读:
    NoInstall_Mysql
    说话
    我是一名博客新人
    pom.xml报错
    模板——链表模板、有序链表模板及测试
    模板——函数模板
    模板——类模板
    MDI程序演示
    容器和算法2 C++快速入门48(完)
    MDI程序演示
  • 原文地址:https://www.cnblogs.com/WildSky/p/11242116.html
Copyright © 2011-2022 走看看