ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 安装 React 是灵活的,可以广泛的应用在项目中。你可以创建新的应用,但是也可以逐步引入它到一个已有的代码库中,而不是重写。 ## 尝试 React 如果你只是感兴趣尝试一下 React,可以使用 CodePen。从这个[ Hello World 示例代码](http://codepen.io/gaearon/pen/rrpgNB?editors=0010) 开始。并不需要安装什么;只需要修改代码并查看它们如何工作。 如果你希望使用自己的文本编辑器,也可以下载这个[ HTML 文件](https://facebook.github.io/react/downloads/single-file-example.html),编辑它,并从一个本地文件系统中用浏览器打开它。这会进行一个缓慢的运行时代码转换,所以不要在产品中使用它。 ## 创建一个单页应用 [Create React App](http://github.com/facebookincubator/create-react-app) 是最好的方式来构建一个新的 React 单页应用。它设置你的开发环境,所以你可以使用最新的 JavaScript 特性,提供一个更好的开发体验,并对产品化来优化你的 app 。 ~~~ npm install -g create-react-app create-react-app hello-world cd hello-world npm start ~~~ 创建 React App 并不处理后台逻辑或者数据库;它只会创建一个前端流水线,所以你可以配合任何你想要的后台技术使用。它在底层使用了 [webpack](https://webpack.js.org/)、[Babel](http://babeljs.io/) 和 [ESLint](http://eslint.org/),但是会为你配置它们。 ## 增加 React 到已有应用 开始使用 React,你并不需要重写已有应用。 我们建议添加 React 到应用中的一个小部分,比如一个独立的 widget,所以你可以看到它在你的用例中是否正常运行。 虽然 React 可以不经过一个构建流水线来使用([参考](https://facebook.github.io/react/docs/react-without-es6.html)),但是我们建议设置它可以更具生产力。一个典型的现代构建流水线包括: 一个包管理器,比如 [Yarn](https://yarnpkg.com/) 或者 [npm](https://www.npmjs.com/) 。它可以使你从一个广泛的第三方包的生态系统中获益,而且简便的安装或者更新它们。 一个打包机,比如 [webpack](https://webpack.github.io/) 或者 [Browserify](http://browserify.org/) 。它使你编写模块化代码,并包装进小的包来优化加载时间。 一个编译器,比如 [Babel](http://babeljs.io/) 。它使你在老旧的浏览器中仍然可以编写现代的 JavaScript 代码。 ### 安装 React 我们建议使用 Yarn 或者 npm 来管理前端依赖。如果你刚接触包管理器,[Yarn 文档](https://yarnpkg.com/en/docs/getting-started)是一个了解它的好去处。 使用 Yarn 安装 React ,运行: ~~~ yarn add react react-dom ~~~ 使用 npm 安装 React,运行: ~~~ npm install --save react react-dom ~~~ Yarn 和 npm 都从 [npm 仓库](http://npmjs.com/)下载包。 ### 启用 ES6 和 JSX 我们建议使用 Babel 来在 React 中使用 ES6 和 JSX 的 JavaScript 语法。 ES6 是一系列的现代 JavaScript 特性,简化开发;JSX是一个 JavaScript 语言的扩展,和 React 配合默契。 [Babel 设置说明](https://babeljs.io/docs/setup/)解释了在许多不同的构建环境中如何配置 Babel。确保你安装了[ babel-preset-react](http://babeljs.io/docs/plugins/preset-react/#basic-setup-with-the-cli-) 和 [babel-preset-es2015](http://babeljs.io/docs/plugins/preset-es2015/#basic-setup-with-the-cli-),并在你的 [.babelrc 配置](http://babeljs.io/docs/usage/babelrc/)中启用它们。 ### 使用 ES6 和 JSX 的 Hello World 建议使用一个打包机如 webpack 或者 Browserify,你可以编写模块化的代码并包装进小的包中来优化加载事件。 最小化的 React 实例看起来如下: ~~~ import React from 'react'; import ReactDOM from 'react-dom'; ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root') ); ~~~ 这个代码渲染到一个 id 为 root 的 DOM 元素,所以你需要在 HTML 文件中放置一个 `<div id="root"></div>` 。 同样,你可以渲染一个 React 组件到现有使用其它 JavaScript UI 库编写的 app 中的一个 DOM 元素中。 ### 开发版和产品版 默认,React 包括了许多有用的警告信息。这些警告信息在开发中非常有用。然而,它们会拖慢 React,所以当你部署 app 的时候应该确保使用产品化版本。 **创建 React App** 如果你使用 [ Create React App](https://github.com/facebookincubator/create-react-app), `npm run build` 将创建一个优化构建的应用,保存到 build 目录中。 **webpack** 包括了 DefinePlugin 和 UglifyJsPlugin 到你的产品 Webpack 配置中,如[指南](https://webpack.js.org/guides/production-build/)中所描述的。 **Browserify** 使用 NODE_ENV 环境变量设置为 production 来运行 Browserify,并使用 [UglifyJs](https://github.com/mishoo/UglifyJS) 作为最后的构建步骤,然后开发相关代码会被剥去。 ### 使用 CDN 如果你不想使用 npm 来管理客户端包, react 和 react-dom npm 包也提供了单独文件的版本,在 dist 目录中,它们托管在 一个 CDN 中: ~~~ <script src="https://unpkg.com/react@15/dist/react.js"></script> <script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script> ~~~ 上面的版本只用于开发,并不适合产品化。压缩优化的产品化版本也是可用的: ~~~ <script src="https://unpkg.com/react@15/dist/react.min.js"></script> <script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script> ~~~ 要加载特定版本的 react 和 react-dom,替换版本号中的 15 即可。 如果你使用浏览器,React 通过 react 包使用。