多个组件合成一个组件:

var style = {
    fontSize: 20,
    color: '#ff0000'
};
var WebSite = React.createClass({
    render: function () {
        return (
            <div style={style}>
                <Name name={this.props.name} />
                <Link link={this.props.link} />
            </div>
        );
    }
});

var Name = React.createClass({
    render: function () {
        return (
            <h1>{this.props.name}</h1>
        );
    }
});

var Link = React.createClass({
    render: function () {
        return (
            <a href={this.props.link}>{this.props.link}</a>
        )
    }
});

React.render(<WebSite name="lqc" link="www.baidu.com" />, document.getElementById('example'));

State状态

getInitialState: function () { return {object: false;} }

this.setState({object: !this.state.object});

var LikeButton = React.createClass({
    getInitialState: function () {
        return {liked: false};
    },
    handleClick: function (event) {
        this.setState({liked: !this.state.liked});
    },
    render: function () {
        var text = this.state.liked ? '喜欢' : '不喜欢';
        return (
            <p onClick={this.handleClick}>
                你<b>{text}</b>我。点我切换状态。
            </p>
        );

    }
});

React.render(<LikeButton/>, document.getElementById('example'));

 

默认的props

var MyMessage = React.createClass({
    getDefaultProps: function () {
        return {
            name: 'runoob'
        }
    },
    render: function () {
        return <h1>{this.props.name}</h1>
    }
});

React.render(<MyMessage/>, document.getElementById('example'));

state和props混合使用

var Website = React.createClass({
    getInitialState: function () {
        return {
            name: "百度",
            link: 'http://www.baidu.com'
        }
    },
    render: function () {
        return (
            <div>
                <Name name={this.state.name} />
                <Link link={this.state.link} />
            </div>

        );
    }
});

// 构建下面两个组件的数据用props
var Name = React.createClass({
    render: function () {
        return (
            <h1>{this.props.name}</h1>
        )
    }
});

var Link = React.createClass({
    render: function () {
        return (
            <a href={this.props.link}>{this.props.link}</a>
        )
    }
});

React.render(<Website />, document.getElementById('example'));

Props验证使用propTypes
propTypes: {
    title: React.PropTypes.string.isRequired
}

多个组件渲染可以写在同一页面:

var Website = React.createClass({
    getInitialState: function () {
        return {
            name: "百度",
            link: 'http://www.baidu.com'
        }
    },
    render: function () {
        return (
            <div>
                <Name name={this.state.name} />
                <Link link={this.state.link} />
            </div>

        );
    }
});

// 构建下面两个组件的数据用props
var Name = React.createClass({
    render: function () {
        return (
            <h1>{this.props.name}</h1>
        )
    }
});

var Link = React.createClass({
    render: function () {
        return (
            <a href={this.props.link}>{this.props.link}</a>
        )
    }
});

React.render(<Website />, document.getElementById('example'));

// Props验证使用propTypes
var title= 'React';
var MyTitle = React.createClass({
    propTypes: {
        title: React.PropTypes.string.isRequired
    },
    render: function () {
        return (
            <h1>{this.props.title}</h1>
        )
    }
});

React.render(<MyTitle title={title} />, document.getElementById('example2'));

下一节:

React组件的生命周期

React组件系统、props与状态(state)的更多相关文章

  1. React创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

    创建组件的方法,组件的props属性.state属性的用法和特点,父子组件传值,兄弟组件传值 1.react组件 1.1.创建组件的方法 1.1.1.函数组件 定义一个组件最简单的方式是使用JavaS ...

  2. 组件的props属性和state状态

    props属性: 我使用代码来说明React中props属性: // Profile.jsx import React from 'react' ; export default Class Prof ...

  3. 创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

    1.创建组件的方法   函数组件   class组件 1.1 函数组 无状态函数式组件形式上表现为一个只带有一个 `render()` 方法的组件类,通过函数形式或者 `ES6` 箭头 `functi ...

  4. React Native中组件的props和state

    一.组件的属性(props)和状态(state) 1.属性(props) 它是组件的不可变属性(组件自己不可以自己修改props). 组件自身定义了一组props作为对外提供的接口,展示一个组件时只需 ...

  5. 【react】利用prop-types第三方库对组件的props中的变量进行类型检测

    1.引言--JavaScript就是一个熊孩子   1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方.javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java ...

  6. React组件开发

    目录: 属性:props 内联样式 状态记忆 : state 生命周期 访问DOM 表单输入 承接快速入门篇:http://www.cnblogs.com/jasonnode/p/4444504.ht ...

  7. 深入React组件生命周期

    上篇博文使用React开发的一些注意要点对React开发的一些重点进行了简单的罗列总结,虽然也提到了React生命周期,但只略微小结,在此单独写篇React生命周期的总结. 在组件的整个生命周期中,随 ...

  8. React组件和生命周期简介

        React 简介----React 是 Facebook 出品的一套颠覆式的前端开发类库.为什么说它是颠覆式的呢? 内存维护虚拟 DOM 对于传统的 DOM 维护,我们的步骤可能是:1.初始化 ...

  9. React组件性能调优

    React是一个专注于UI层的框架,它使用虚拟DOM技术,以保证它UI的高速渲染:使用单向数据流,因此它数据绑定更加简单:那么它内部是如何保持简单高效的UI渲染呢?这种渲染机制有可能存在什么性能问题呢 ...

随机推荐

  1. Java核心知识点学习----使用Condition控制线程通信

    一.需求 实现线程间的通信,主线程循环3次后,子线程2循环2次,子线程3循环3次,然后主线程接着循环3次,如此循环3次. 即:A->B->C---A->B->C---A-> ...

  2. 小甲鱼python视频弟十一讲(课后习题)

    1.修改列表里的值 list1 = [,,[,,,[,,,,] list1[] = print(list1) list1[][][] = '?' print(list1) 2.列表的排序(sort) ...

  3. coreseek实战(四):php接口的使用,完善php脚本代码

    coreseek实战(四):php接口的使用,完善php脚本代码 在上一篇文章 coreseeek实战(三)中,已经能够正常搜索到结果,这篇文章主要是把 index.php 文件代码写得相对完整一点点 ...

  4. jzoj[1224]

    怎么说呢,这道题的题面一看就知道是最小生成树,我是把二维数组转化为一维数组来做了,1000*1000没有超过一维数组的定义范围,不会爆栈 然后用并查集的kruskal来写就好了 首先一个start函数 ...

  5. jquery css

    jQuery提供css()的方法来实现嵌入式改变元素样式,css()方法在使用上具有多样性.其中一种接受两个输入参数:样式属性和样式值,它们之间用逗号分开.比如我们要改变链接颜色,我们可以使用下面的代 ...

  6. Apache配置默认首页面

    conf -> httpd.conf下设置成 <IfModule dir_module> DirectoryIndex index.php index.html index.htm ...

  7. android的多渠道打包

    本文出处:http://www.cnblogs.com/0616--ataozhijia/p/4203997.html 这里以友盟为例子. 项目快上线了,要做一个多渠道打包.不然每次都要在Androi ...

  8. Programming Assignment 5: Kd-Trees

    用2d-tree数据结构实现在2维矩形区域内的高效的range search 和 nearest neighbor search.2d-tree有许多的应用,在天体分类.计算机动画.神经网络加速.数据 ...

  9. 第33讲:List的一阶函数操作代码实战详解

    今天来看一下关于List的一阶函数操作 让我们看下下面的代码 println(List(1,2,3,4):::List(4,5,6,7,8):::List(10,11))//列表连接    print ...

  10. 做php网站后台开发,在Linux系统上进行更好吗?

    1. PHP是开源软件,它在bsd/linux/win下都有很好的正式版及孪生版.并非开发php就必须要在linux下进行.主机服务商们习惯性的把asp与php分为两个主机系列几进行销售.由于asp只 ...