首页 > 其他 > 详细

React教程

时间:2017-02-20 22:23:43      阅读:216      评论:0      收藏:0      [点我收藏+]

1.React JSX:

React 使用 JSX 来替代常规的 JavaScript。

JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。

我们不需要一定使用 JSX,但它有以下优点:

  JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。

  它是类型安全的,在编译过程中就能发现错误。

  使用 JSX 编写模板更加简单快速。

使用 JSX

jsx类似于HTML:

ReactDOM.render(
    <h1>hello,world!</h1>,
    document.getElementById("example")

);

//可以嵌套多个html标签 添加自定义属性的时候加上data-
ReactDOM.render(
    <div>
    <h1>hello</h1>
    <h2>world</h2>
    <p data-myattribute="somevalue">balalala</p>
    </div>,
     document.getElementById("example")
);

(1) Javascript表达式

我们可以在JSX中使用js表达式,表达式写在{}

ReactDOM.render(<div>{1+1}</div>,document.getElementById("example"));

(2) 样式

React推荐使用内联样式

var myStyle = {
    fontSize: 100,
    color: ‘#FF0000‘
};
ReactDOM.render(
    <h1 style = {myStyle}>网页漂亮网教程</h1>,
    document.getElementById(‘example‘)
);

(3)数组

JSX 允许在模板中插入数组,数组会自动展开所有成员:

var arr = [
  <h1>网页漂亮网教程</h1>,
  <h2>学的不仅是技术,更是梦想!</h2>
];
ReactDOM.render(
  <div>{arr}</div>,
  document.getElementById(‘example‘)
);

 

 

HTML 标签 vs. React 组件

React 可以渲染 HTML 标签 (strings) 或 React 组件 (classes)。

(1)要渲染 HTML 标签,只需在 JSX 里使用小写字母的标签名。

       var myDivElement = <div className = "foo"/>;

       ReactDOM.render(

           myDivElement,

           document.getElementById(‘example‘)

       );

(2)要渲染 React 组件,只需创建一个大写字母开头的本地变量。

    var myComponent = React.creatClass({/*...*/});

    var myElement = <MyComponent someProperty={true} />;

    ReactDom.render(myElement,document.getElementById(‘example‘));

 

 

 

React 组件

//封装一个输出helloworld的组件
var HelloMessage = React.creatClass({
   render:function(){
       return <h1>hello,world!</h1>;
   } 
});
ReactDOM.render(
    <HelloMessage/>,
    document.getElementById("example")
);

解析:

React.createClass 方法用于生成一个组件类 HelloMessage。 (必须大写)

<HelloMessage /> 实例组件类并输出信息。

如果需要传递参数,可以用this.props对象

var HelloMessage = React.createClass({
    render:function(){
        return <h1>{this.props.name}</h1>;
    }
});
ReactDOM.render(
    <HelloMessage name = "Bonny"/>,
    document.getElementById(‘example‘)
);

name属性通过this.props.name来获取;

复合组件

我们可以通过创建多个组件来合成一个组件,即把组件的不同功能点进行分离。

以下实例我们实现了输出网站名字和网址的组件:

var WebSite = React.createClass({
  render: function() {
    return (
      <div>
        <Name name={this.props.name} />
        <Link site={this.props.site} />
      </div>
    );
  }});
var Name = React.createClass({
  render: function() {
    return (
      <h1>{this.props.name}</h1>
    );
  }});
var Link = React.createClass({
  render: function() {
    return (
      <a href={this.props.site}>
        {this.props.site}
      </a>
    );
  }});
React.render(
  <WebSite name="网页漂亮网教程" site=" http://www.webpiaoliang.com" />,
  document.getElementById(‘example‘));

 

React教程

原文:http://www.cnblogs.com/Naomi-love/p/6421759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!