初始React

来源:互联网 发布:linux c语言网络编程 编辑:程序博客网 时间:2024/06/03 05:42

React简介

React 是一个 JAVASCRIPT 库,主要用于UI,有较高的性能

JSX

React用JSX来代替常规JS。优点是:执行更快,类型安全,更加简单。
可以把需要复用的部分单独写成一个js,在各个html页面中引用

基本使用方法:

简单来说JSX的基本语法规则就是遇到<开头的就以html解析,遇到{开头的就以js解析

ReactDOM.render(    <!-- html代码,结尾为逗号 -->,    document.getElementById('example')    <!-- 需要加入以上html代码的DOM节点 -->);

以上代码可以放在一个单独的js文件中,在需要使用的html页面中引入
<script type="text/babel" src="reactExample.js"></script>
JavaScript 表达式可写在花括号{}中,不能使用if-else结构,可使用三元运算代替

内联样式&注释

<!--写法与css相似,数字后会自动加px-->var style1={……};ReactDOM.render(    <h1 style={style1}>内容</h1>,    {/*此处为注释*/}    document.getElementById('example'));

组件

将代码封装为组件,可像插入标签一样,在网页中插入该组件

一、生成组件类createClass

var ComponentName = React.createClass({  render: function() {    return <h1>Hello</h1>;  }});ReactDOM.render(  <ComponentName />,  document.getElementById('example'));

自定义组件名必须以大写字母开头
render方法用于输出组件,每个组件都必须有render方法

二、Props

1.this.props对象

var ComponentName = React.createClass({  render: function() {    return <h1>Hello {this.props.name}</h1>;  }});ReactDOM.render(  <ComponentName name="TTT"/>,  document.getElementById('example'));

向组件传递参数可使用this.props对象
可把单个组件组合成复合组件
注意:class属性要写成className,for属性要写成htmlFor

2.特殊属性children

表示组件的每个子节点(子节点数必须大于1,否则会报错)

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

3.设置组件属性的默认值getDefaultProps

将组件的属性在同一块地方统一设置

var ComponentName = React.createClass({  getDefaultProps: function() {    return {      name: 'TTT'    };  },  render: function() {    return <h1>Hello {this.props.name}</h1>;  }});ReactDOM.render(  <ComponentName/>,  document.getElementById('example'));

4.属性验证PropTypes

将组件的属性验证放在同一地方,具体内容参考官方文档

var MyTitle = React.createClass({  propTypes: {    title: React.PropTypes.string.isRequired,  },  render: function() {     return <h1> {this.props.title} </h1>;   }});

三、State

与用户交互
getInitialState用于设置初始状态,handleClick用于在用户单击操作时重新设置状态,render用于输出内容

 var StateChange = React.createClass({        getInitialState: function() {          return {state1: false};        },        handleClick: function(event) {          this.setState({state1: !this.state.state1});        },        render: function() {          var text = this.state.state1 ? '状态1' : '状态2';          return (            <p onClick={this.handleClick}>              现在状态是:<b>{text}</b>,点我切换状态。            </p>          );        }      });      ReactDOM.render(        <StateChange />,        document.getElementById('example')      );
原创粉丝点击