夺命雷公狗-----React---7--组建的状态props和state

props:组建初始要渲染的数据,他是不可以改变的

state:组建状态发生改变,调用render重新渲染数据

我们来写一个例子:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="./js/react.js"></script>
    <script src="./js/react-dom.js"></script>
    <script src="./js/browser.min.js"></script>
</head>
<body>
    <div id="demo"></div>
    <script type="text/babel">
        //定义一个组建,名字第一个必须是大写
        var Firs = React.createClass({
            /*组建的状态*/
            getInitialState:function(){
                return{ 
                    mes:this.props.value
                }
            },
            render:function(){
                return(
                    //必须要有一个大标签包围着才可以
                    <div>
                        <h1>Hello {this.props.user}</h1>
                        <input type="text" name="" value={this.state.mes} onChange={this.changeHandle} />
                        <input type="button" value={this.props.sendname} />
                        <p>{this.state.mes}</p>
                    </div>
                );
            },
            changeHandle:function(ev){
                //console.log(ev.target.value);
                this.setState({mes:ev.target.value});
            }
        });

        var obj = {
            user: '夺命雷公狗',
            sendname :'留言',
            values : '请输入留言的信息'
        }

        ReactDOM.render(<Firs {...obj} />, /*这里其实也可以使用双标签的如:<Fir></Fir>  */
            document.getElementById('demo'),
            function(){
                alert('页面渲染完成');
        });
    </script>
</body>
</html>

 

 

效果如下所示:

posted @ 2016-11-15 16:58  夺命雷公狗  阅读(227)  评论(0编辑  收藏  举报