第一个react
个人觉着react和vue是很相似的,之前还转载过一篇介绍两个异同点的文章,那个时候还完全不懂react,现在才慢慢开始接触,所以只能总结一些个人的心得,首先自然是react的优点了,个人觉着主要有以下几点吧。
- React 可以开发单页面应用 spa(单页面应用)
- react 组件化模块化 开发模式
- React通过对DOM的模拟(虚拟dom),最大限度地减少与DOM的交互 (数据绑定)
- react灵活 React可以与已知的库或框架很好地配合。
- react 基于jsx的语法,JSX是React的核心组成部分,它使用XML标记的方式去直接声明界面, html js混写模式
接下来就是对自己的第一个react项目的记录了。
创建项目
和vue一样,react也离不开node和npm,这里就不再提,主要是创建react项目的两种方法:脚手架和npx,下面分别演示两种方法。

脚手架创建项目
1,在第一次使用脚手架的时候,需要全局安装脚手架,方便后期在不同的目录中使用脚手架创建项目,第一次安装成功后,以后就不必安装了。
全局安装脚手架的命令:npm install -g create-react-app

2,打开命令行,切换在自己放项目的目录里,执行创建项目的命令:create-react-app 项目名
这里创建的项目名称是reactdemo,所以执行的命令是:create-react-app reactdemo

3,运行项目,项目创建后,在命令行工具将目前切换到项目的根目录,执行npm start,项目就跑起来了。后期再次需要打开项目的时候,只需要执行这一步就可以了。


vue的默认端口是8080,而react的默认端口是3000;另外当vue的默认端口会占用时,会立即报错,然后你需要去更改端口,重启项目,但是在react的项目中,当默认端口被占用的时候,命令行会出现提示,按回车后,会默认给你切换到距离3000端口最近且空闲的端口上。
还有的地方提出使用yarn替代npm,这也就是为什么上面的截图中都会出现yarn的原因。在使用yarn的时候,首先需要全局安装:npm install -g yarn,安装成功后,执行上面的前两步,最后一步的时候,可以使用yarn来运行项目:yarn start。
npx创建项目
使用npx创建项目的时候,不需要脚手架,所以只有两步:
1,创建项目:npx create-react-app reactdemo

2,运行项目:npm start

然后就可以得到和上面一样的效果了。
这里简单提一下npx,它是npm v5.2.0引入的一条命令(npx),引入这个命令的目的是为了提升开发者使用包内提供的命令行工具的体验。在使用npx创建项目的时候,npx create-react-app reactdemo这条命令会临时安装 create-react-app 包,命令完成后create-react-app 会删掉,不会出现在 global 中。下次再执行,还是会重新临时安装。npx 会帮你执行依赖包里的二进制文件。
项目结构
项目的根目录结构如下图:

个人感觉还是和vue比较类似的,重点是public和src,首先开看一下public:

其中favicon.ico是一个图标,就是浏览器地址栏处的图标:

其次是index.html,是一个入口文件。
最后是manifest.json,允许将站点添加至主屏幕,是 PWA 提供的一项重要功能,当前 manifest.json 的标准仍属于草案阶段,Chrome 和 Firefox 已经实现了这个功能,微软正努力在 Edge 浏览器上实现,Apple 目前仍在考虑中。
接下来看一下src文件夹:

这里只需要打开index.js这个react入口文件就可以了。

更改目录结构
目前,资源比较少,将所有的东西都放在src下其实也还好,但是一旦项目变大了,东西就会越来越多,这样就会显得结构很混乱,因此,和vue一样,要在src中新建文件components存放组件,在src中新建文件assets存放资源 ,在assets下新建文件css和 images将相关资源移入到对应的文件夹中,然后在引用这些资源的位置更改一下路径就可以了。

组件
在项目创建成功并运行后,默认会打开一个页面,这个页面里面的内容便是App.js这个文件里面的根组价里面写的内容:

这里不讨论jsx语法,只分析项目结构,因为react也是组件化的思想,所以并不建议将太多的东西都写在根组件里面,而是当组件单独提出来写,最后挂载到根组件就可以了。
下面,首先需要在components文件夹里面新建一个文件Home.js,然后在这个组件中写入一下简单的内容,并在最后将该组件暴露出来

然后在App.js中引入该组件并挂载:

保存后,我们就会发现浏览中已经发生了变化,因为这个也热加载的,不需要手动刷新。

完整代码下载:点这里
第一个react的更多相关文章
- DECO 一个REACT NAtive 开发IDE工具
DECO 一个REACT NAtive 开发IDE工具. 目前只支持 OS,NO WINDOWS https://www.decosoftware.com/ 一个方便的快速 ERXPRESS 教程:h ...
- Griddle, griddle-react 一个REACT 表格组件
Griddle, griddle-react 一个REACT 表格组件: http://griddlegriddle.github.io/Griddle/index.html
- 从零构建一个react+webpack+typescript的应用
今天要完成在windows下从零开始构建一个react应用的任务 首先,新建一个文件夹,然后在该文件夹下使用命令npm init 初始化一个node项目. 然后安装所需依赖, npm i react ...
- (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境
通过前面的学习,对webpack有了更深的认识,故此节我们就利用前面相关知识自己动手用webpack构建一个React的开发环境,就算是一个小案例吧. 注:此处使用的开发工具是Webstorm. 1. ...
- 一个 react 小的 demo
一.搭建开发环境: webpack构建工具. 新建一个文件夹(login),进入根目录, 1.输入命令:cnpm init,生成了一个package.json文件,这是一个标准的npm说明文件,里面蕴 ...
- 业余时间正在开发一个REACT小视频站点
业余时间正在开发一个REACT小视频站点,数据接口来源于吐槽弹幕网(C站),供C站用户移动端的观看.因现存在移动网络屏蔽C站的关系,最好使用非移动网络进行观看.否则会比较卡,影响用户体验. 站点测试入 ...
- React环境配置(第一个React项目)
使用Webpack构建React项目 1. 使用NPM配置React环境 NPM及React安装自行百度 首先创建一个文件夹,the_first_React 进入到创建好的目录,npm init,然后 ...
- 推荐一个React 入门的教程
推荐一个React 入门的教程 react 入门实例教程 Github地址:https://github.com/ruanyf/react-demos
- 从头搭建一个React应用
node,webpack这些就不一一介绍怎么安装了,默认大家都知道. 一.npm install -g create-react-app 首先全局安装react的脚手架工具 create-react- ...
随机推荐
- linux 用户配制文件 用户增加及删除 以及用户属于的更改
1.用户密码文件 /etc/passwd root : x : 0 : 0 : root : /root : / ...
- Blender节点笔记
Blender节点笔记实现复杂材质,纹理的更直观的方式就是使用节点功能. 每个节点左边作为输入,右边作为输出.节点之间通过传递值影响后者.传递的值为(Scalars,Vectors)标量与矢量.二维矢 ...
- ODOO区分测试库和正式库的简单方法
ODOO区分测试库和正式库的简单方法.1. 打开 开发者模式,右上角能显示数据库名称,缺点是,太耗系统资源了,数据多的时候就明显感觉慢了.2. 安装社区的显示测试帐套的模块, 若是正式环境还是尽量少装 ...
- MySQL数据库一
MySQL的基本命令: 进入数据库: mysql -u [username] -p[password] (注:-u 和 用户名之间可以有空格 -p和password之间无空格) mysql -u ...
- Linux 命令的20个实用范例,入门必看!
Tips: 达内Linux云计算免费课程火热抢报中,点击文末“阅读原文”快速抢! Linux中一个基本命令是ls.没有这个命令,我们会在浏览目录条目时会遇到困难.这个命令必须被每个学习Linux的人知 ...
- AangularJS入门总结一
CRUD(增加Create.查询Retrieve.更新Update.删除Delete) 一.angularjs是为了克服HTML在构建应用上的不足而设计的: 二.AngularJS的出众之处: 构建一 ...
- 静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了。
1.静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了.1.静态代码块:是在类的加载过程的第三步初始化的时候进行的,主要目的是给类变量赋予初始值.2.构 ...
- 【maven】maven查看项目依赖并解决依赖冲突的问题
一.问题 项目开发过程中,经常会遇到jar冲突,然后maven根据自己的规则进行冲突解决,导致项目在运行的过程中报错. 1.maven自动解决依赖冲突的规则是什么? 2.如何查看当前项目的maven的 ...
- nginx实现集群高可用
大家知道NGINX作为反向代理服务器可以实现负载均衡,同时也可以作为静态文件服务器,它的特点就是并发支持大,单机可同时支持3万并发,现在很多网站都把NGINX作为网关入口来统一调度分配后端资源.但是如 ...
- windows知识
文章目录 系统 修改远程桌面的端口号 IE选项中reset web setting不可用(灰色)的解决办法 重装系统后,修改默认程序安装目录.我的文档.桌面 路径 Keep network addre ...