react实战 系列
react实战 系列(未完结,持续更新中...)
前言
学习 react 的方法,比较常规的是跟着官方文档边看边做,可是 react 的官网教程有点难(至少比 vue 的难),亦或买几本讲基础的或实战类型的 react 的书,可是 react 是一个生态圈,比如要学 react、es6、webpack、各种插件包、ui库(例如 antd)、路由(如 react-router-dom)、状态(如 Redux)等等, 得买几本?
再想想,我们最终目标:学会 react 开发。
而目标的检验标准就是:能用 react 解决实际问题。比如做一个后台管理系统。
模仿是一个较好的学习方法。
最好找一个开源的 react 项目,不要太复杂,项目必须得优秀。
笔者找的是 spug。此刻 github 上 star 是 7.2k。什么概念? bizcharts(阿里通用图表组件库) 此刻 star 是 5.8k,vuex 是 27k,lodash 是 56k,虽然比顶级的(react 的 star 是 186k)相差许多倍,但也能说明这个项目的优秀。
笔者将通过自己的角度,一边分析、一边进行二次开发,尽可能的模拟真实场景。
注:倘若你会 vue,却是 react 新手,建议先看 七天接手react项目。
环境准备
进入github spug,克隆项目到本地:
$ git clone git@github.com:openspug/spug.git spug-study
Cloning into 'spug-study'...
remote: Enumerating objects: 11954, done.
remote: Counting objects: 100% (4463/4463), done.
remote: Compressing objects: 100% (1323/1323), done.
remote: Total 11954 (delta 3358), reused 4133 (delta 3108), pack-reused 7491
Receiving objects: 100% (11954/11954), 5.19 MiB | 111.00 KiB/s, done.
Resolving deltas: 100% (8661/8661), done.
项目目录结构如下:
$ ll spug-study
total 48
drwxr-xr-x 1 78614 197609 0 4月 10 21:16 docs/
-rw-r--r-- 1 78614 197609 35184 4月 10 21:16 LICENSE
-rw-r--r-- 1 78614 197609 3732 4月 10 21:16 README.md
drwxr-xr-x 1 78614 197609 0 4月 10 21:16 spug_api/
drwxr-xr-x 1 78614 197609 0 4月 10 21:16 spug_web/
spug_api 是后端项目,前端只需关注 spug_web。
$ cd spug-study/spug_web/
// 安装依赖
$ npm i
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated flatten@1.0.3: flatten is deprecated in favor of utility frameworks such as lodash.
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
...
added 1787 packages, and audited 1788 packages in 2m
107 packages are looking for funding
run `npm fund` for details
32 vulnerabilities (1 low, 16 moderate, 14 high, 1 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
vscode 终端中启动项目:
spug_web> npm run start
> spug_web@3.0.0 start
> react-app-rewired start
...
Compiled successfully!
You can now view spug_web in the browser.
Local: http://localhost:3000
On Your Network: http://192.168.85.1:3000
Note that the development build is not optimized.
To create a production build, use npm run build.
浏览器显示:

环境准备完毕。
目录
react实战 系列的更多相关文章
- react实战系列 —— 起步(mockjs、第一个模块、docusaurus)
其他章节请看: react实战 系列 起步 本篇我们首先引入 mockjs ,然后进入 spug 系统,接着模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划 ...
- react实战系列 —— 我的仪表盘(bizcharts、antd、moment)
其他章节请看: react实战 系列 My Dashboard 上一篇我们在 spug 项目中模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划") ...
- react实战 系列 —— React 的数据流和生命周期
其他章节请看: react实战 系列 数据流和生命周期 如何处理 React 中的数据,组件之间如何通信,数据在 React 中如何流动? 常用的 React 生命周期方法以及开源项目 spug 中使 ...
- react实战系列 —— React 中的表单和路由的原理
其他章节请看: react实战 系列 React 中的表单和路由的原理 React 中的表单是否简单好用,受控组件和非受控是指什么? React 中的路由原理是什么,如何更好的理解 React 应用的 ...
- React 实战系列:模块化
本系列以实战为主,通过一个 TODO 应用来学习深入 React. 学习无捷径,唯一的办法就是 coding!coding!coding! 如有不足之处,欢迎大家批评指正,共同进步! 言毕,开始撸
- react实战系列 —— react 的第一个组件
react 的第一个组件 写了 react 有一个半月,现在又有半个月没写了,感觉对其仍旧比较陌生. 本文分两部分,首先聊一下 react 的相关概念,然后不使用任何语法糖(包括 jsx)或可能隐藏底 ...
- React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发
React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发 2016/09/23 | React Native技术文章 | Sky丶清| 4 条评论 | 1 ...
- 从零开始react实战:云书签-1 react环境搭建
总览篇:react 实战之云书签 本篇是实战系列的第一篇,主要是搭建 react 开发环境,在create-react-app的基础上加上如下功能: antd 组件库按需引入 ,支持主题定制 支持 l ...
- GitHub实战系列汇总篇
基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...
- GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
随机推荐
- Metastability 亚稳态问题
亚稳态问题 各种跨时钟域的问题都会归结于亚稳态的问题,IP设计时钟域不超过两个,对于CDC设计要求不高;对于SoC设计来说,CDC处理十分重要 1.什么是亚稳态? transition time 是可 ...
- 【SHELL】查找文件并删除
find . -iname file-name |xargs -I % rm -rf %
- 【ThreadX-USBX】Azure RTOS USBX概述
Azure RTOS USBX是高性能USB主机,设备和移动(OTG)嵌入式堆栈.Azure RTOS USBX与Azure RTOS ThreadX完全集成,并且可用于所有ThreadX支持的处理器 ...
- phpcms - 在删除文章后实现自动删除tag标签
在使用phpcms程序制作网站的时候,我们会发现文章模型新建一篇文章后会自动向数据库中插入关键词,但如果删除文章后,数据库中的关键词表中字段中还存在之前文章的关键词,那么怎样才能在phpcms后台中删 ...
- [转帖]Linux 下rsync命令详细整理
https://blog.csdn.net/weixin_44052462/article/details/116134761 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面 ...
- [转帖]使用 Dumpling 和 TiDB Lightning 备份与恢复
本文档介绍如何使用 Dumpling 和 TiDB Lightning 进行全量备份与恢复. 在备份与恢复场景中,如果需要全量备份少量数据(例如小于 50 GB),且不要求备份速度,你可以使用 Dum ...
- [转帖]调试springboot数据库系统应用时常用debug日志配置, 解决问题缩小范围时常用
https://www.yihaomen.com/article/1853.html 摘要: 用 spring boot 开发应用时,在遇到麻烦问题时,经常会打开debug日志,下面记录一个通用的思路 ...
- [转帖]微服务集成skywalking实现全链路日志追踪方案
目录 1.安装部署skywalking 1.1 环境准备 1.2 部署步骤 2.微服务整合skywalking实现链路监控 2.1 下载skywalking官方版本 2.2 将微服务引入skywalk ...
- 在k8s中的控制器和部署服务-ReplicationController和ReplicaSet
pod 代表了 k8s 中的基本部署单元,但是在实际应用场景中,服务不可能是单个pod运行的,否则会出现"单点".在 k8s 中对 pod 的托管部署,专门抽象成了单独的资源.其中 ...
- Ant Design Vue栅格Grid的使用
栅格系统的设计理念 建议横向排列的盒子数量最多四个,最少一个. 因此我们的span一般设置为3或者4 小屏幕的话就另当别论了 栅格系统的简单介绍 1.通过row在水平方向建立一组column(简写 c ...