React(1)

发布时间:2019-08-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了React(1)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

                                         React入门

                                 React 是一个用于构建用户界面的 JAVASCRIPT 库。有以下特点:
   1.声明式设计 −React采用声明范式,可以轻松描述应用。
   2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
   3.灵活 −React可以与已知的库或框架很好地配合。
   4.JSXJSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但速度快
   5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
   6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单

Hello world例子:

<!DOCTYPE htML>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>
    <script src="https://cdn.bootcss.COM/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
      ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('example')
      );
    </script>
  </body>
</html>

React(1)

实例中我们引入了三个库: react.min.js 、react-dom.min.js 和 babel.min.js:
react.min.js - React 的核心库
react-dom.min.js - 提供与 DOM 相关的功能
babel.min.js - Babel 可以将 ES6 代码转为 ES5 代码,这样我们就能在目前不支持 ES6 浏览器上执行 React 代码。Babel 内嵌了对 JSX 的支持。通过将 Babel 和 babel-sublime 包(package)一同使用可以让码的语法渲染上升到一个全新的水平。

JSX语法:

 ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('example')
      );

上述代码为获取id 为example的标签 添加render里写的html标签或者执行js

PRops -> properties 属性们
render -> 渲染
ReactDom.render(实例化的组件,要渲染到得对象)

我们可以在 JSX 中使用 JavaScript 表达式。表达式写在花括号 {} 中。如下:

ReactDOM.render(
    <div>
      <h1>{alert(1)}</h1>
    </div>
    ,
    document.getElementById('example')
);

在 JSX 中不能使用 if else 语句,但可以使用 conditional (三元运算) 表达式来替代。

ReactDOM.render(
    <div>
      <h1>{i == 1 ? 'True!' : 'False'}</h1>
    </div>
    ,
    document.getElementById('example')
);

React 推荐使用内联样式。我们可以使用 camelCase 语法来设置内联样式. React 会在指定元素数字后自动添加 px :

VAR style = {
   background-color: blue;
};
ReactDOM.render(
    <h1 style = {style}>hello</h1>,
    document.getElementById('example')
);

React 通过React.createClass新建组件,如果我们需要向组件传递参数,可以使用 this.props 对象:

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

React 复合组件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
  </head>
  <body>
    <div id="example" style="background-color: blue"></div>
    <script type="text/babel">
        var Item = React.createClass({
  render: function() {
    return (
      <h1>{this.props.item}</h1>
    );
  }
});

var Pic = React.createClass({
  render: function() {
    return (
      <img src={this.props.src}/> 
    );
  }
});


var List = React.createClass({
  render: function() {
    return (
      <div>
        <Item item={this.props.item} />
        <Pic src={this.props.src} />
      </div>
    );
  }
});

          
      ReactDOM.render(
        <List item="hello react" src="http://www.ruanyifeng.com/blogimg/asset/2016/bg2016021201.png"></List>,
        document.getElementById('example')
      );
    </script>
  </body>
</html>

clipboard.png

       React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。
React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。
以下实例中创建了 LikeButton 组件,getInitialState 方法用于定义初始状态,也就是一个对象,这个对象可以通过 this.state 属性读取。当用户点击组件,导致状态变化,this.setState 方法就修改状态值,每次修改以后,自动调用 this.render 方法,再次渲染组件。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
      var LikeButton = React.createClass({
        getInitialState: function() {
          return {liked: false};
        },
        handleClick: function(event) {
          this.setState({liked: !this.state.liked});
        },
        render: function() {
          var text = this.state.liked ? '喜欢' : '不喜欢';
          return (
            <p onClick={this.handleClick}><b>{text}</b>我。点我切换状态。
            </p>
          );
        }
      });

      ReactDOM.render(
        <LikeButton />,
        document.getElementById('example')
      );
    </script>
  </body>
</html>

脚本宝典总结

以上是脚本宝典为你收集整理的React(1)全部内容,希望文章能够帮你解决React(1)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
猜你在找的ES2015(es6)相关文章
全站导航更多
最新ES2015(es6)教程
热门ES2015(es6)教程