React(三)组件的生命周期

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>
时间: 2024-12-28 16:26:38

React(三)组件的生命周期的相关文章

Android React Native组件的生命周期

和Android一样,React的组件也有对应的生命周期.Android React Native组件的生命周期可以总的概括为下面这一张图. 可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一次绘制阶段,如图中的上面虚线框内,在这里完成了组件的加载和初始化: 第二阶段:是组件在运行和交互阶段,如图中左下角虚线框,这个阶段组件可以处理用户交互,或者接收事件更新界面: 第三阶段:是组件卸载消亡的阶段,如图中右下角的虚线框中,这里做一些组件的清理工作. 生命周期回调函数总共有10个. obje

Android React Native组件的生命周期及回调函数

熟悉android的童鞋应该都清楚,android是有生命周期的,其很多组件也是有生命周期.今天小编和大家分享的React Native组件的生命周期,还不了解的童鞋,赶紧来围观吧 在android开发中,React Native组件的生命周期,大致分为三个阶段,分别是: 1.组件第一次绘制阶段,这个阶段主要是组件的加载和初始化: 2.组件在运行和交互阶段,这个阶段组件可以处理用户交互,或者接收事件更新界面: 3.组件卸载消亡的阶段,这个阶段主要是组件的清理工作. 在Android React

React Native组件、生命周期及属性传值props详解

创建组件的三种方式 第一种:通过ES6的方式创建 /** * 方式一 :ES6 */ export default class HelloComponent extends Component { render (){ return <Text style={{fontSize:20,backgroundColor:'red'}}>Hello</Text> } } 第二种:通过ES5的方式创建 /** * 方式二:ES5 */ var HelloComponent= React.c

React:组件的生命周期

在组件的整个生命周期中,随着该组件的props或者state发生改变,其DOM表现也会有相应的变化.一个组件就是一个状态机,对于特定地输入,它总返回一致的输出. 一个React组件的生命周期分为三个部分:实例化.存在期和销毁时. 实例化 当组件在客户端被实例化,第一次被创建时,以下方法依次被调用: 1.getDefaultProps2.getInitialState3.componentWillMount4.render5.componentDidMount 当组件在服务端被实例化,首次被创建时

(三)表单数据的搜集和react组件的生命周期

四:表单数据的搜集 (1)         问题: 在react应用中, 如何收集表单输入数据 (2)         包含表单的组件分类 受控组件: 表单项输入数据能自动收集成状态 非受控组件: 需要时才手动读取表单输入框中的数据 /* 需求: 自定义包含表单的组件 1. 界面如下所示 2. 输入用户名密码后, 点击登陆提示输入信息 3. 不提交表单 */ class LoginForm extends React.Component{ //搜集表单数据 constructor(props){

React Native 中组件的生命周期(转)

概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键.RN 组件的生命周期整理如下图: 如图,可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一次绘制阶段,如图中的上面虚线框内,在这里完成了组件的加载和初始化: 第二阶段:是组件在运行和交互阶段,如图中左下角虚线框,这个阶段组件可以处理用户交互,或者接收事件更新界面: 第

React组件的生命周期

整个组件,从创建组件类开始,到渲染,到消亡的过程,就是组件的生命周期. 组件的生命周期可以分为三个阶段: 挂载阶段 更新阶段 卸载阶段 挂载阶段 在这个过程中,会触发以下几个事件 getDefaultProps,设置默认属性 getInitialState,设置初始状态 componentWillMount 即将挂载 render 渲染,就是挂载 componentDidMount 挂载完成 <!DOCTYPE html> <html> <head> <meta

react.js 从零开始(二)组件的生命周期

什么是生命周期? 组件本质上是一个状态机,输入确定,输出一定确定. 当状态改变的时候 会触发不同的钩子函数,可以让开发者做出响应.. 一个组件的生命周期可以概括为 初始化:状态下 可以自定义的函数 getDefaultProps object getDefaultProps() 在组件类创建的时候调用一次,然后返回值被缓存下来.如果父组件没有指定 props 中的某个键,则此处返回的对象中的相应属性将会合并到 this.props (使用 in 检测属性). 该方法在任何实例创建之前调用,因此不

2. React组件的生命周期

2. React组件的生命周期 使用React开发时候用到最多的就是React的组件了,通过继承React.Component,加入constructor构造函数,实现Render方法即可.这当中React组件为我们提供了很多钩子,以便更加方便精细的控制程序. 钩子包括:componentWillMount/componentDidMount,同时在调用setState时候会触发:componentWillReceiveProps/shouldComponentUpdate/ComponentW