React文档(一)安装
React是一个灵活的可以用于各种不同项目的框架,你可以用它来写新应用,你也可以逐步将它引进已有的代码库而不用重写整个项目。
试用React
如果你想玩一玩React,那么就去CodePen上试一试。尝试一下Hello World的React例子。不需要安装任何东西,只是修改代码然后查看结果。
如果你更喜欢在本地编辑,那么你也可以下载此文件,修改它,然后在本地用浏览器打开。但是它会做一个很慢的运行时代码转换,所以不要像这样在产品中使用。
创建一个单页应用
创建React应用这个项目是一个最好的方式去学习如何创建一个新的单页应用。它设置好了开发环境所以你可以使用最新的js特性,它提供了很好的开发体验,最优化你的应用产品。
npm install -g create-react-app
create-react-app hello-world
cd hello-world
npm start
创建React应用不需要处理后台逻辑或者数据库,它只需要建立一个前端的创建管线,所以你可以和各种不同的后台语言配合。它在底层使用了webpack,Babel和ESLint等组件,并为你配置了它们。
添加React到已存在的应用
想要使用React你不需要重写你的应用。
我们建议添加React到应用中的一个小模块里,例如一个独立的小部件,那样你会发现在你的用例下它可以工作得很好。
虽然React不强制需要一个创建管线,但是建议创建一个那样你可以提高效率。一个最新的创建管线一般包括以下几点:
- 一个包管理器,例如Yarn或者npm。它们可以让你利用大量的第三方包,然后很方便地安装和升级。
- 一个打包器,例如webpack或者Browserify。它们让你在开发的时候写模块化的代码然后在完成之后打包集合成更小的包来优化载入时间。
- 一个编译器,例如Babel。它能够让你使用js最新特效,而且兼容所有浏览器。
安装React
建议使用yarn或者npm包管理器来管理前端依赖的包。如果你没用过包管理器,那个到Tarn文档这个网站去学习相关知识。
yarn init
yarn add react react-dom
使用npm安装,运行以下命令:
npm init
npm install --save react react-dom
Yarn和npm都是从npm registry下载依赖包。
建议使用Babel来支持ES6和JS语法。ES6拥有js最新的特性,让开发更加简便,JSX是js语言的扩展,很好的兼容React。
Babel安装操作指南讲解了如何在各种不同的环境配置Babel。确保你已经安装了babel-parset-react和babel-preset-es2015并且让他们在Babel的配置项里正常工作。
使用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')
);
这段代码渲染了一个DOM元素插入了id名为root的元素里,所以你需要在你的页面里含有<div id="root"></div>。
同样的,你可以渲染一个React组件到一个DOM元素里通过引用其他js UI库。
开发和生产版本
一般默认情况下,React有很多有用的警告。这些警告在开发时有很大的帮助。但是,如果在生产环境下,它会让程序臃肿变慢,所以当你发布应用的时候确保使用生产版本。
创建React App
如果你使用Create React App项目,npm run build将会在build文件夹下创建你的应用。
webpack
通过这个指南可以了解DefinePlugin和UglifyJsPlugin插件在生产环境webpack设置中的作用。
Browserify
把NODE_ENV环境变量设置成production运行Browserify,使用UglifyJS将只在开发中使用的代码剥离出来。
Rollup
使用rollup-plugin-replace和rollup-plugin-commonjs插件来去除开发环境代码。
使用CDN
如果不想使用npm包管理器,那么可以使用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包同样可用。
React文档(一)安装的更多相关文章
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
vue mand-mobile按2.0文档默认安装的是1.6.8版本 npm list mand-mobilebigbullmobile@1.0.0 E:\webcode\bigbullmobile` ...
- React文档(十三)思考React
在我们的看来,React是使用js创建大型快速网站应用的首要方法.它在Facebook和Instagram的使用已经为我们展现了它自己. React的一个很好的地方就在于当你创建应用的时候它使你思考如 ...
- 【G】开源的分布式部署解决方案文档 - 手动安装
G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片 ...
- Android Studio帮助文档的安装及智能提示设置
初次使用Android Studio,发现其智能提示不能像Visual Studio一样显示系统方法等的详细用途描述.经查找资料,问题原因是未安装SDK Document. 解决办法如下: 1.打开如 ...
- React文档(二十四)高阶组件
高阶组件(HOC)是React里的高级技术为了应对重用组件的逻辑.HOCs本质上不是React API的一部分.它是从React的组合性质中显露出来的模式. 具体来说,一个高阶组件就是一个获取一个组件 ...
- react文档demo实现输入展示搜索结果列表
文档页面地址:https://doc.react-china.org/docs/thinking-in-react.html 该文档只给了具体实现思路,下面是我实现的代码. 初学react,如果有写的 ...
- [No0000190]vim8安装教程和vim中文帮助文档Vimcdoc安装方法-Vim使用技巧(5)
Vim8.0是近十年来的一次大更新,支持任务.异步I/O.Channels和JSON以及异步计时器.Lambdas 和 Closures等,还包括对GTK + 3的支持.由于ubuntu默认安装的Vi ...
- 安装部署VMware vSphere 5.5文档 (6-3) 安装配置AD域控制器
部署VMware vSphere 5.5 实施文档 ########################################################################## ...
- 安装部署VMware vSphere 5.5文档 (6-4) 安装配置DB数据库
部署VMware vSphere 5.5 实施文档 ########################################################################## ...
随机推荐
- P4091 [HEOI2016/TJOI2016]求和
留待警戒 FFT的时候长度要写的和函数里一样啊XD 瞎扯 这是个第二类斯特林数的理性愉悦颓柿子题目 颓柿子真的是让我hi到不行啦(才没有) 前置芝士 一个公式 \[ \sum_{i=0}^n t^i ...
- 【C#】异步的用法
1. C#5.0 加入了async, await关键字. async是在声明异步方法时使用的修饰符, 声明放在返回值之前即可,await表达式则负责消费异步操作, 不能出现在catch或finally ...
- HDU 5119 Happy Matt Friends(递推)
http://acm.hdu.edu.cn/showproblem.php?pid=5119 题意:给出n个数和一个上限m,求从这n个数里取任意个数做异或运算,最后的结果不小于m有多少种取法. 思路: ...
- 1. AMQP 0-9-1模型简介(官网直译)
关于这篇指导文档 本文提供了AMQP 0-9-1协议的一个概述,它是RabbitMQ所支持的协议之一. AMQP 0-9-1是什么 AMQP 0-9-1(Advanced Message Queuin ...
- 【BZOJ】1831: [AHOI2008]逆序对
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1831 考虑$-1$的位置上填写的数字一定是不降的. 令${f[i][j]}$表示$DP$到 ...
- 阿里云CentOS Linux服务器上搭建邮件服务器遇到的问题
参考文章: 阿里云CentOS Linux服务器上用postfix搭建邮件服务器 Linux系统下邮件服务器的搭建(Postfix+Dovecot) 本来想自己搭建邮件服务器,但是看到一篇资料表示阿里 ...
- java正则常用记录
1. java中 字符串的某个字母是否有某个指定字符N : for(int i=0;i<temp.length();i++){ if( temp.get(i).substring(0,1) ...
- Android JNI 传递对象
JNI初步入门后,在传递数据的时候,遇到一个需求:有多个数据需要在Java与C代码之间进行传递.如果都做为函数参数传入,则函数很长很难看,并且多个数据的返回也不好实现.所以想到了把数据打包后传递.这在 ...
- vscode 的tab与空格设置
为了python 的pep8 标准,把tab键输入从\t的制表符 转为4个空格. 1在vscode下边栏点击 “空格” 在上面选项里设置 使用空格缩进, 以及可以 将缩进转换为空格 2在“文件-> ...
- JS中UTF-8和UTF-16互转
1.由于服务端使用的Go,默认是使用UTF-8编码的,而JS默认是Unicode编码的(也就是UTF-16),所以为了字符串编码的一致性,将前端字符串数据编码转换为UTF-8之后再发送给服务端,服务端 ...