react生命周期方法

首次调用组件时,有以下方法会被调用(注意顺序,从上到下先后执行):

getDefaultProps 、getInitialState 

只适合react.createClass直接创建的组件,使用ES6/ES7创建的这个方法不可使用,ES6/ES7可以使用下面方式

挂载:componentWillMount 

服务器端和客户端都只调用一次,在初始化渲染执行之前立刻调用。如果在这个方法内调用 setStaterender() 将会感知到更新后的 state,将会执行仅一次,尽管 state 改变了。

此时还不能访问到真实的dom结构.

挂载:componentDidMount

在初始化渲染执行之后立刻调用一次,仅客户端有效(服务器端不会调用)。在生命周期中的这个时间点,组件拥有一个 DOM 展现,你可以通过 this.getDOMNode() 来获取相应 DOM 节点。

如果想和其它 JavaScript 框架集成,使用 setTimeout 或者 setInterval 来设置定时器,或者发送 AJAX 请求,可以在该方法中执行这些操作。

更新:componentWillReceiveProps

 

更新:shouldComponentUpdate

 

更新:componentWillUpdate

 

更新:componentDidUpdate

 

移除:componentWillUnmount

componentWillUnmount()

在组件从 DOM 中移除的时候立刻被调用。

 在该方法中执行任何必要的清理,比如无效的定时器,或者清除在 componentDidMount 中创建的 DOM 元素。

比如:创建的script,离开组件时候,立即清除

componentWillUnmount(){
        if(document.getElementById('playerId')){
              document.getElementsByTagName("head")[0].removeChild(document.getElementById('playerId'));
        }
    }

本地文件:D:\www\svn\project\react_abacus\src\components\Video.js

 

 

原文来自:http://shouce.jb51.net/react/component-specs.html

原文来自:http://www.react-cn.com/api/componentDidMount.html

posted @ 2017-07-25 16:51  chenguiya  阅读(215)  评论(0)    收藏  举报