美文网首页
ReactJS_10 React 组件生命周期

ReactJS_10 React 组件生命周期

作者: 习惯芥末味 | 来源:发表于2018-10-04 16:12 被阅读0次

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

  • 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 中移除之前立刻被调用。

以下实例初始化 state , setNewnumber 用于更新 state。所有生命周期在 Content 组件中。

class Button extends React.Component {
        constructor(props) {
            super(props);
            this.state = {data: 0};
            this.setNewNumber = this.setNewNumber.bind(this);
        }

        setNewNumber() {
            this.setState({data: this.state.data + 1})
        }
        render() {
            return (
                <div>
                    <button onClick = {this.setNewNumber}>Add</button>
                    <Content myNumber = {this.state.data}></Content>
                </div>
            );
        }
    }
    class Content extends React.Component {
        componentWillMount() {
            console.log('1.Component WILL MOUNT!')
        }
        componentDidMount() {
            console.log('2.Component DID MOUNT!')
        }
        componentWillReceiveProps(newProps) {
            console.log('3.Component WILL RECEIVE PROPS!')
        }
        shouldComponentUpdate(newProps, newState) {
            return true;
        }
        componentWillUpdate(nextProps, nextState) {
            console.log('4.Component WILL UPDATE!');
        }
        componentDidUpdate(prevProps, prevState) {
            console.log('5.Component DID UPDATE!')
        }
        componentWillUnmount() {
            console.log('6.Component WILL UNMOUNT!')
        }

        render() {
            return (
                <h3>{this.props.myNumber}</h3>
            );
        }
    }
    ReactDOM.render(
        <div>
            <Button />
        </div>,
        document.getElementById('root')
    );

从控制台可以看出,最开始执行前两个钩子函数,每点击一次,执行一次后三个钩子函数。


初始化状态
点击时执行

利用生命周期的钩子函数componentDidMount 方法设置一个定时器,每隔100毫秒重新设置组件的透明度,并重新渲染:

 class Hello extends React.Component{
        constructor(props){
            super(props);
            this.state={opacity : 1.0}
        }

        componentDidMount(){
            this.timer=setInterval(function () {
                var opacity=this.state.opacity;
                opacity -= .05;
                if(opacity<0.1){
                    opacity=1.0
                }
                this.setState({
                    opacity: opacity
                });
            }.bind(this),100)
        }

        render(){
            return(
                <h1 style={{opacity: this.state.opacity}}>
                    Hello {this.props.name}
                </h1>
            )
        }
    }
    ReactDOM.render(
        <Hello  name="world"/>,
        document.getElementById('root')
    );

相关文章

  • ReactJS_10 React 组件生命周期

    组件的生命周期可分成三个状态: Mounting:已插入真实 DOMUpdating:正在被重新渲染Unmount...

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React 组件生命周期

    组件生命周期 参考阅读: component-lifecycle react组件生命周期过程说明 react 组件...

  • React总结

    [toc] 1.React组件生命周期 1.1 生命周期图 组件的生命周期的图如下: 具体可参考React 组件生...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

  • react(最近搞了一套react项目的视频 全套 有需

    React 组件生命周期在本章节中我们将讨论 React 组件的生命周期。 组件的生命周期可分成三个状态: Mou...

  • Notes On React - Two

    React 的生命周期   React组件 的生命周期大致可分成四个状态:  - Mounting:装配-组件实例...

  • React 生命周期

    React 生命周期 初始化周期 组件重新渲染生命周期 组件卸载生命周期

  • 006@React组件的生命周期.md

    006@React组件的生命周期.md React Native 是基于组件化开发。弄清楚组件的生命周期对于我们开...

  • 四:React 进阶三 (生命周期)

    react(一):组件的生命周期 生命周期函数 在组件运行的某个时刻,会被自动执行的一些函数。 React生命周期...

网友评论

      本文标题:ReactJS_10 React 组件生命周期

      本文链接:https://www.haomeiwen.com/subject/vupxaftx.html