React(三)組件的生命週期

來源:互聯網
上載者:User

標籤:this   成功   sel   lib   包括   life   nts   bsp   babel   

Component Specs and LifeCycle

<div id="app"></div><script src="bower_components/react/react.min.js"></script><script src="bower_components/react/react-dom.min.js"></script><script src="lib/babel-core/browser.min.js"></script><script type="text/babel">    var MessageBox = React.createClass({        getInitialState: function () {            return {                count: 0            }        },        componentWillMount: function () {            console.log(‘componentWillMount‘);            var self = this;            this.timer = setInterval(function () {                self.setState({                    count: self.state.count + 1                });            }, 1000);        },        componentDidMount: function () {            console.log(‘componentDidMount‘);            console.log(this);        },        componentWillUnmount: function () {            console.log(‘卸載掉組件‘);            clearInterval(this.timer);        },        render: function () {            return (                <div>                    <h1>{this.state.count}</h1>                </div>            );        }    });    var messagebox = ReactDOM.render(        <MessageBox/>,        document.getElementById(‘app‘)    );</script>
<div id="app"></div><script src="bower_components/react/react.min.js"></script><script src="bower_components/react/react-dom.min.js"></script><script src="lib/babel-core/browser.min.js"></script><script type="text/babel">    var MessageBox = React.createClass({        getInitialState: function () {            return {                count: 0            }        },        getDefaultProps: function () {        },        /*componentWillMount: function () {        },        componentDidMount: function () {        },        componentWillUnmount: function () {        },        */        shouldComponentUpdate: function (nextProp, nextState) {            console.log(‘shouldComponentUpdate‘);            if(nextState.count > 3) return false;            return true; // 必須返回一個true或者false        },        componentWillUpdate: function (nextProp, nextState) {            console.log(‘componentWillUpdate‘);        },        componentDidUpdate: function () {            console.log(‘成功更新啦‘);        },        doUpdate: function () {            this.setState({                count: this.state.count + 1            });        },        render: function () {            return (                <div>                    <h1>{this.state.count}</h1>                    <button onClick={this.doUpdate}>手動更新一下組件(包括子組件)</button>                    <SubMessage message={this.state.count} />                </div>            );        }    });    var SubMessage = React.createClass({        componentWillReceiveProps: function (nextProp) {            console.log(‘子組件將要獲得prop‘);        },        shouldComponentUpdate: function (nextProp, nextState) {            if(nextProp.message > 2) return false;            return true;        },        render: function () {            return (                <div>                    <h3>{this.props.message}</h3>                </div>            );        }    });    var messagebox = ReactDOM.render(        <MessageBox/>,        document.getElementById(‘app‘)    );</script>

 

React(三)組件的生命週期

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.