React入门(一)

1.React是什么,为什么要使用它

  React是FaceBook内部的一个JavaScript类库,它引入了一种新的方式处理浏览器DOM。你只需要声明式的定义各个时间点的用户界面,而无需关心在数据变化时需要更新哪一部分DOM。

2.为什么使用JSX(Javascript XML)

  react在不使用JSX时阅读以及理解较为困难,使用了JSX之后调用变为熟悉的HTML标签风格

3.例子:React一个简单的表单代码

<style>   //外部css
.index_title{
    color:#F00   
}
</style>

 

<div id = "example"> </div> //容器

 

var MyForm = React.createClass({
  getInitialState: function() {   //初始化state和props
    return {
        given_name:"",
        family_name:""
    };
  },
  handleChange: function(name,event) {
      var newState = {};
      newState[name] = event.target.value;  //event.target访问触发事件的DOM节点
      this.setState(newState);    //只能通过setState修改状态
  },
  submitHandler:function(event){
      event.preventDefault();
      var words = ["Hi",this.state.given_name,this.state.family_name];    
      alert(words.join(" "))
  },
  render: function() {
    return (
    <form onSubmit = {this.submitHandler}>
        <h1 className = 'index_title'>LETS GO CELTICS</h1>
        <label htmlFor = 'given_name'>Given Name:</label>
        <br/>
        <input
            type = "text"
            name = "given_name"
            value = {this.state.given_name}
            onChange = {this.handleChange.bind(this,'given_name')}/>    
        <br/>
        <label htmlFor = 'family_name'>Family Name:</label>
        <br/>
        <input
            type = "text"
            name = "family_name"
            value = {this.state.family_name}   //访问数据只能通过state和props 通常props保存静态数据 
            onChange = {this.handleChange.bind(this,'family_name')}/>   //change变为onChange、click变为onClick  .bind用来传递参数
        <br/>
        <button type="submit" className = 'btn btn-warning'>Speak</button>   //class变为className
    </form>
    )
  }
});
ReactDOM.render(   //创建一个虚拟的DOM,用来表示组件的输出
  <MyForm />,
  document.getElementById('example')
);

 

posted @ 2016-10-11 14:53  骑驴的是郭襄  阅读(125)  评论(0编辑  收藏  举报