React.js入门及实例

2016-07-06 / 7 阅读 / JS

刚刚开始写个人站时,原想同时可以适配手机屏幕的,不过实际操作起来发现适配手机端还是挺困难的。不仅仅是使用两分css样式就可以的,当选择angularjs作为个人站的js框架时就注定了这个网站不适合移动端显示。再加上markdown需要在游览器端去解析,效果肯定不会理想。
而最近开始学习的React.js相对于angularjs是比较轻便的。因此很适合用来做移动端这种性能有瓶颈的设备。

不过关于React.js的学习资料并不多,幸好搜到
React 入门实例教程-阮一峰时间上有点旧了,不过React的语法还是一样的。前辈解释的很到位。这里就不粘贴了。跟着敲一敲学习学习。

为了以后使用方便,把用到的3个库打包好js练习库打包zip下载

基本上都是参照例子打出来的,效果也是可以看到了好吧,算是小小的入门了。

直接贴上代码,以后有忘记的地方可以拿出来看看。

<!DOCTYPE html>
<html>
<head>
    <script src="react-demos-master/build/react.js"></script>
    <script src="react-demos-master/build/react-dom.js"></script>
    <script src="react-demos-master/build/browser.min.js"></script>
</head>

<body>
    <style>
        ul.stu{
            margin: 0px;
            padding: 0px;
            width: 100%;
            border-collapse: collapse;
        }
        ul.stu>li{
            list-style: none;
            border: 1px solid black;
            margin-bottom: 20px;
            padding-left: 20px;
            padding-bottom: 20px;
        }
        ul.stu>li>div.example{
            background-color: white;
            font-size: 14px;
            position: relative;
            top: -10px;
            left: 20px;
            display: inline-block;
            line-height: 14px;
        }
    </style>
    <ul class="stu">
        <li>
            <div class="example">example1</div>
            <div id="example1"></div>
            <script type="text/babel">

                ReactDOM.render(
                    <h1>Hello,world! </h1>,
                    document.getElementById('example1')
                );
            </script>
        </li>

        <li>
            <div class="example">example2</div>
            <div id="example2"></div>
            <script type="text/babel">
                var count = 0;
                setInterval(function(){
                    count++;

                    ReactDOM.render(
                        <h1>count = {count} </h1>,
                        document.getElementById('example2')
                    );
                },1000)
            </script>
        </li>

        <li>
            <div class="example">example3</div>
            <div id="example3"></div>
            <script type="text/babel">
                var books = ['java','android','c++'];

                ReactDOM.render(
                        <ul>
                        {
                            books.map(function(book){
                                return <li key={book}>{book}</li>;
                            })
                        }
                        </ul>,
                        document.getElementById('example3')
                )
            </script>
        </li>

        <li>
            <div class="example">example4</div>
            <div id="example4"></div>
            <script type="text/babel">
                var nodes = [<li key="1">xiao ming</li>,
                             <li key="2">xiao hong</li>,
                             <li key="3">xiao fang</li>];

                ReactDOM.render(
                        <ul>{nodes}</ul>,
                        document.getElementById('example4')
                )
            </script>
        </li>

        <li>
            <div class="example">example5</div>
            <div id="example5"></div>
            <script type="text/babel">
                var Hello = React.createClass({
                    render:function(){
                        return <h1>Hello, {this.props.name}!</h1>;
                    }
                })

                ReactDOM.render(
                        <Hello name="world"></Hello>,
                        document.getElementById('example5')
                )
            </script>
        </li>

        <li>
            <div class="example">example6</div>
            <div id="example6"></div>
            <script type="text/babel">
                var Nodes = React.createClass({
                    render:function(){
                        return (
                            <ul>
                            {
                                React.Children.map(this.props.children,function(child){
                                    return <li>{child}</li>;
                                })
                            }
                            </ul>
                        )
                    }
                })

                ReactDOM.render(
                        <Nodes>
                            <span>1</span>
                            <span>2</span>
                        </Nodes>,
                        document.getElementById('example6')
                )
            </script>
        </li>

        <li>
            <div class="example">example7</div>
            <div id="example7"></div>
            <script type="text/babel">
                var World = React.createClass({
                    propTypes:{
                      name:React.PropTypes.string.isRequired,
                    },
                    render:function(){
                        return <p>what is you name, {this.props.name} ?</p>
                    }
                })

                ReactDOM.render(
                        <World name="wb"></World>,
                        document.getElementById('example7')
                )
            </script>
        </li>

        <li>
            <div class="example">example8</div>
            <div id="example8"></div>
            <script type="text/babel">
                var Component = React.createClass({
                    doclick:function(){
                        this.refs.textinput.focus()
                    },
                    render:function(){
                        return (
                            <div>
                                <input type="text" ref="textinput" />
                                <input type="button" value="focus" onClick={this.doclick} />
                            </div>
                        )
                    }
                })

                ReactDOM.render(
                        <Component></Component>,
                        document.getElementById('example8')
                )
            </script>
        </li>

        <li>
            <div class="example">example9</div>
            <div id="example9"></div>
            <script type="text/babel">
                var ToggleText = React.createClass({
					getInitialState:function(){
						return {isTrue:true}
					},
                    doclick:function(){
						this.setState({isTrue:!this.state.isTrue});
                    },
                    render:function(){
						var text = this.state.isTrue?"true":"false"

                        return (
                            <p onClick={this.doclick}>Now, state is { text}</p>
                        )
                    }
                })

                ReactDOM.render(
                        <ToggleText></ToggleText>,
                        document.getElementById('example9')
                )
            </script>
        </li>

        <li>
            <div class="example">example10</div>
            <div id="example10"></div>
            <script type="text/babel">
                var BindInput = React.createClass({
					getInitialState:function(){
						return {value:"hello"}
					},
					handleChange:function(event){
						this.setState({value:event.target.value})
					},
					render:function(){
						return (
							<div>
								<input type="text" value={this.state.value} onChange={this.handleChange} />
								<p>{this.state.value}</p>
							</div>
						)
					}
				})

				ReactDOM.render(
					<BindInput/>,
					document.getElementById("example10")
				)
            </script>
        </li>

        <li>
            <div class="example">example11</div>
            <div id="example11"></div>
            <script type="text/babel">
                var Animation = React.createClass({
					getInitialState:function(){
						return {colorValue:111}
					},
					componentDidMount:function(){
						this.timer = setInterval(function(){
							var c = parseInt(this.state.colorValue);
							c = c + 111;
							if(c > 999){
								c = 111;
							}
							this.setState({colorValue:c})
						}.bind(this),200)
					},
					render:function(){

						return (
							<div>
								<p style={{color:"#"+this.state.colorValue}}>Hello, world!</p>
							</div>
						)
					}
				})

				ReactDOM.render(
					<Animation/>,
					document.getElementById("example11")
				)
            </script>
        </li>
    </ul>
</body>
</html>
相关推荐