hello React.js

简介: 转载地址: http://www.ruanyifeng.com/blog/2015/03/react.html /** * Created by Administrator on 2016-12-8. */import React from 'react';import ReactDOM from 'react-dom';var names = ['Alice', '

转载地址:

http://www.ruanyifeng.com/blog/2015/03/react.html


 /**
 * Created by Administrator on 2016-12-8.
 */
import React from 'react';
import ReactDOM from 'react-dom';
var names = ['Alice', 'Emily', 'Kate'];
/*ReactDOM.render()*/
ReactDOM.render(
    <h1>Hello, world!</h1>,
    document.getElementById('example')
);

/*JSX 语法*/
ReactDOM.render(
    <div>
        {
            names.map(function (name) {
                return <div>Hello, {name}!</div>
            })
        }
    </div>,
    document.getElementById('example')
);


var arr = [
    <h1>Hello world!</h1>,
    <h2>React is awesome</h2>,
];
ReactDOM.render(
    <div>{arr}</div>,
    document.getElementById('example')
);

/*组件*/
var HelloMessage = React.createClass({
    render: function() {
        return <h1>Hello {this.props.name}</h1>;
    }
});

ReactDOM.render(
    <HelloMessage name="John" />,
    document.getElementById('example')
);

/*this.props.children*/

var NotesList = React.createClass({
    render: function() {
        return (
            <ol>
                {
                    React.Children.map(this.props.children, function (child) {
                        return <li>{child}</li>;
                    })
                }
            </ol>
        );
    }
});

ReactDOM.render(
    <NotesList>
        <span>hello</span>
        <span>world</span>
    </NotesList>,
    document.getElementById('example')
);

/*PropTypes*/

var MyTitle = React.createClass({
    propTypes: {
        title: React.PropTypes.string.isRequired,
    },

    render: function() {
        return <h1> {this.props.title} </h1>;
    }
});
var data = "string!";
ReactDOM.render(
    <MyTitle title={data} />,
    document.getElementById('example')
);
/*获取真实的DOM节点*/
var MyComponent = React.createClass({
    handleClick: function() {
        this.refs.myTextInput.focus();
    },
    render: function() {
        return (
            <div>
                <input type="text" ref="myTextInput" />
                <input type="button" value="Focus the text input" onClick={this.handleClick} />
            </div>
        );
    }
});

ReactDOM.render(
    <MyComponent />,
    document.getElementById('example')
);

/*this.state*/
var LikeButton = React.createClass({
    getInitialState: function() {
        return {liked: true};
    },
    handleClick: function(event) {
        this.setState({liked: !this.state.liked});
    },
    render: function() {
        var text = this.state.liked ? 'like' : 'haven\'t liked';
        return (
            <p onClick={this.handleClick}>
                You {text} this. Click to toggle.
            </p>
        );
    }
});

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

/*表单*/
var Input = React.createClass({
    getInitialState: function() {
        return {value: 'Hello!'};
    },
    handleChange: function(event) {
        this.setState({value: event.target.value});
    },
    render: function () {
        var value = this.state.value;
        return (
            <div>
                <input type="text" value={value} onChange={this.handleChange} />
                <p>{value}</p>
            </div>
        );
    }
});

ReactDOM.render(<Input/>, document.getElementById('example'));

/*组件的生命周期*/
var Hello = React.createClass({
    getInitialState: function () {
        return {
            opacity: 1.0
        };
    },

    componentDidMount: function () {
        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: function () {
        return (
            <div style={{opacity: this.state.opacity}}>
                Hello {this.props.name}
            </div>
        );
    }
});

ReactDOM.render(
    <Hello name="world"/>,
    document.getElementById('example')
);


/*Ajax*/
var UserGist = React.createClass({
    getInitialState: function() {
        return {
            username: '',
            lastGistUrl: ''
        };
    },

    componentDidMount: function() {
        $.get(this.props.source, function(result) {
            var lastGist = result[0];
            if (this.isMounted()) {
                this.setState({
                    username: lastGist.owner.login,
                    lastGistUrl: lastGist.html_url
                });
            }
        }.bind(this));
    },

    render: function() {
        return (
            <div>
                {this.state.username}'s last gist is
                <a href={this.state.lastGistUrl}>here</a>.
            </div>
        );
    }
});

ReactDOM.render(
    <UserGist source="https://api.github.com/users/octocat/gists" />,
    document.getElementById('example')
);

















目录
相关文章
|
3月前
|
前端开发 JavaScript 容器
第二章 简单实现Hello React案例
第二章 简单实现Hello React案例
|
XML 存储 JSON
React全家桶: React简介--hello react 案例--虚拟DOM与真实DOM-- jsx语法规则
React全家桶: React简介--hello react 案例--虚拟DOM与真实DOM-- jsx语法规则
126 0
React全家桶: React简介--hello react 案例--虚拟DOM与真实DOM-- jsx语法规则
|
前端开发
React工作39:react中的Hello World
React工作39:react中的Hello World
40 0
|
前端开发 JavaScript
React——HelloReact实现
React——HelloReact实现
97 0
React——HelloReact实现
|
Web App开发 前端开发 JavaScript
《React极简教程》第一章 Hello,World!
react React 是一个用于构建用户界面的 JAVASCRIPT 库。 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。
1163 0
|
Web App开发 SQL 前端开发
React极简教程: Hello,World!
React简史 A declarative, efficient, and flexible JavaScript library for building user interfaces. https://facebook.github.io/react/ 一个声明式的,高效的,和用于构建用户界面的灵活的JavaScript库。
1214 0
|
前端开发 JavaScript
React(0.13) hello world
React JS React.
503 0
|
3月前
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
83 0
|
3月前
|
存储 前端开发 JavaScript
【第34期】一文学会React组件传值
【第34期】一文学会React组件传值
31 0
|
3月前
|
资源调度 前端开发 JavaScript
React 的antd-mobile 组件库,嵌套路由
React 的antd-mobile 组件库,嵌套路由
40 0