React 特点
1.声明式设计 −React采用声明范式,可以轻松描述应用。
2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
3.灵活 −React可以与已知的库或框架很好地配合。
4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。
正文:
React 安装
React 可以直接下载使用,下载包中也提供了很多学习的实例。
本教程使用了 React 的版本为 16.4.0,你可以在官网 https://reactjs.org/ 下载最新版。
你也可以直接使用 Staticfile CDN 的 React CDN 库,地址如下:
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script><script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script><!-- 生产环境中不建议使用 --><script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
官方提供的 CDN 地址:
<script src="https://unpkg.com/react@16/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script><!-- 生产环境中不建议使用 --><script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
注意: 在浏览器中使用 Babel 来编译 JSX 效率是非常低的。
使用实例
以下实例输出了 Hello, world!
React 实例
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Hello React!</title><script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script><script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script><script src="https://cdn.staticfile.org/babel-standalone/6.26.0/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.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)一同使用可以让源码的语法渲染上升到一个全新的水平。
ReactDOM.render( <h1>Hello, world!</h1>,
document.getElementById('example'));
以上代码将一个 h1 标题,插入 id="example" 节点中。
注意:
如果我们需要使用 JSX,则 <script> 标签的 type 属性需要设置为 text/babel。
通过 npm 使用 React
如果你的系统还不支持 Node.js 及 NPM 可以参考我们的 Node.js 教程。
我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack,本教程使用 webpack。
国内使用 npm 速度很慢,你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org$ npm config set registry https://registry.npm.taobao.org
这样就可以使用 cnpm 命令来安装模块了:
$ cnpm install [name]
更多信息可以查阅:http://npm.taobao.org/。
使用 create-react-app 快速构建 React 开发环境
create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境。
create-react-app 自动创建的项目是基于 Webpack + ES6 。
执行以下命令创建项目:
$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/$ npm start
在浏览器中打开 http://localhost:3000/ ,结果如下图所示:
项目的目录结构如下:
my-app/ README.md
node_modules/ package.json
.gitignore
public/ favicon.ico
index.html
manifest.json
src/ App.css
App.js
App.test.js
index.css
index.js
logo.svg
manifest.json 指定了开始页面 index.html,一切的开始都从这里开始,所以这个是代码执行的源头。
尝试修改 src/App.js 文件代码:
src/App.js
import React, { Component } from 'react';import logo from './logo.svg';import './App.css';
class App extends Component { render() { return ( <div className="App">
<div className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h2>欢迎来到菜鸟教程</h2>
</div>
<p className="App-intro">
你可以在 <code>src/App.js</code> 文件中修改。
</p>
</div>
);
}} export default App;
修改后,打开 http://localhost:3000/ (一般自动刷新),输出结果如下:
在 Cloud Studio 中运行 React
下面我们介绍如何在 Cloud Studio 中安装、使用 React:
访问 腾讯云开发者平台,注册/登录账户。
创建工作空间
首先,我们创建一个空模板的工作空间。
创建完成后,进入工作空间,将其切换到 Node.js 环境。
创建应用
这时候我们的环境里已经有了 Node.js,我们来创建一个 Node.js 应用。为了方便,我们使用 create-react-app 脚手架来创建一个 React 应用。
首先安装 create-react-app,打开一个终端并执行 sudo yarn global add create-react-app。
接下来执行 create-react-app app 来创建应用,它会在当前目录下创建一个 app 文件夹,这就是我们的应用代码。
创建访问链接
上述过程同时也会安装好所需的依赖,所以我们现在只需要进入 app,并执行 yarn start 就可以启动应用了。
此时终端显示应用启动成功,并运行在 http:localhost:3000。我们打开右侧的「访问链接」面板,将输入框中的端口改为 3000,并点击右侧「创建链接」,下方就会多一条访问链接。
我们可以直接点击蓝色的链接访问,也可以将鼠标放在二维码图标上弹出二维码用手机扫码访问。
这里是以 Node.js 为例,你也可以使用 Python、PHP、Java 等其他语言尝试创建访问链接。