react.js


<
html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="test"></div> <script type="text/babel"> //-------dome1 ReactDOM.render( <h1>hellow,word1111!</h1>, document.getElementById('test') ); </script> </body> </html>

dome2

// ---------dome2
var names = ['xiaom','xiaohong','xiaohei1'];
ReactDOM.render(
<div>
  {
    names.map(function(name){
      return <div>hellow,{name}!</div>
    })
  }
</div>,
document.getElementById('test')
);

dome3

var names=[
   <h1>hellow:number 1</h1>,
   <h3>hellow:number 2</h3>  
];

ReactDOM.render(
   <div>{names}</div>,
   document.getElementById('test')  
);
** 注意 双标签必须合法 不然会报错 Uncaught SyntaxError: embedded: Unexpected token
结果:

dome4:

var HelloClass = React.createClass({
    render:function(){
        return <h1>hellow:{this.props.name}</h1>;   
    }
});
ReactDOM.render(
 <HelloClass name="liuhulan"/>,
document.getElementById('test')
);
//注意:组建的类的首字母必须大写 !

dome5 

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

ReactDOM.render(
  <TestClass>
  <span>9897878</span>
  <span>911111</span>
  </TestClass>,
  document.getElementById('test')
);

//  this.props.children    
// map  :循环

 dome6

//---------dome6
var TestProp = React.createClass({
//属性
propTypes:{
//要求TestProp组建有一个title 属性 这个属性必须是字符串 而且是必填
title:React.PropTypes.string.isRequired,
},
render:function(){
return <h1>{this.props.title}</h1>
}
});

var data="abc";
// var data=123;
ReactDOM.render(
<TestProp title={data}/>,
document.getElementById('test')
);
// 如果data=123 会报错 Warning: Failed propType: Invalid prop `title` of type `number` supplied to `TestProp`, expected `string`

-----------------------------------------------
 

var TestProp = React.createClass({
//getDefaultProps 默认组建属性的值
getDefaultProps:function(){
return {title:"hello,word",abc:'uuuuu'};
},
render:function(){
return <h1>{this.props.title}---{this.props.abc}</h1>
}
});


ReactDOM.render(
<TestProp/>,
document.getElementById('test')
);

dome7

var down = document.getElementById('test');
//---------------dome8 
var TestController = React.createClass({
//初始化一个标记
  getInitialState:function(){
    return {liked:true};
  },
//this.setState修改状态值
  clickFunction:function(event){
    this.setState({liked:!this.state.liked});
  },

  render:function(){
    var message=this.state.liked?'like':'not like';
    return(
        <p onClick={this.clickFunction}>00000:{message}</p>
    );
  }
});
ReactDOM.render(
<TestController/>,down
  );

dome8

//输入框的值改变p标签的值也改变
var down = document.getElementById('test');
var Input = React.createClass({
  //初始化tag的值
      getInitialState:function(){
        return {tag:'Hello1212'};   
      },
  //触发事件重新赋值
  inputChange:function(event){
    this.setState({tag:event.target.value});
  },
  render:function(){
    var message=this.state.tag;
    return(
      <div>
      <input type="text" value={message} onChange={this.inputChange}/>
      <p>{message}</p>
      </div>
    );
  }
});

ReactDOM.render(
  <Input/>,down
);
---
原文地址:https://www.cnblogs.com/yhl664123701/p/5844874.html