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.

浏览器显示:

环境准备完毕。

目录

  1. 起步(mockjs、第一个模块、docusaurus)
  2. 我的仪表盘(bizcharts、antd、moment)
  3. react 的第一个组件
  4. React 的数据流和生命周期
  5. React 中的表单和路由的原理
  6. Redux

react实战 系列的更多相关文章

  1. react实战系列 —— 起步(mockjs、第一个模块、docusaurus)

    其他章节请看: react实战 系列 起步 本篇我们首先引入 mockjs ,然后进入 spug 系统,接着模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划 ...

  2. react实战系列 —— 我的仪表盘(bizcharts、antd、moment)

    其他章节请看: react实战 系列 My Dashboard 上一篇我们在 spug 项目中模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划") ...

  3. react实战 系列 —— React 的数据流和生命周期

    其他章节请看: react实战 系列 数据流和生命周期 如何处理 React 中的数据,组件之间如何通信,数据在 React 中如何流动? 常用的 React 生命周期方法以及开源项目 spug 中使 ...

  4. react实战系列 —— React 中的表单和路由的原理

    其他章节请看: react实战 系列 React 中的表单和路由的原理 React 中的表单是否简单好用,受控组件和非受控是指什么? React 中的路由原理是什么,如何更好的理解 React 应用的 ...

  5. React 实战系列:模块化

    本系列以实战为主,通过一个 TODO 应用来学习深入 React. 学习无捷径,唯一的办法就是 coding!coding!coding! 如有不足之处,欢迎大家批评指正,共同进步! 言毕,开始撸

  6. react实战系列 —— react 的第一个组件

    react 的第一个组件 写了 react 有一个半月,现在又有半个月没写了,感觉对其仍旧比较陌生. 本文分两部分,首先聊一下 react 的相关概念,然后不使用任何语法糖(包括 jsx)或可能隐藏底 ...

  7. React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发

    React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发   2016/09/23 |  React Native技术文章 |  Sky丶清|  4 条评论 |  1 ...

  8. 从零开始react实战:云书签-1 react环境搭建

    总览篇:react 实战之云书签 本篇是实战系列的第一篇,主要是搭建 react 开发环境,在create-react-app的基础上加上如下功能: antd 组件库按需引入 ,支持主题定制 支持 l ...

  9. GitHub实战系列汇总篇

    基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...

  10. GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

随机推荐

  1. 05-逻辑仿真工具VCS-执行过程

    Verilog Simulation Event Queue 主要了解VCS是如何处理交给它的代码的 Verilog的仿真事件队列,介绍VCS如何处理交给它的代码.VCS是Synopsys公司的,支持 ...

  2. 【ArgParse】一个开源的入参解析库

    项目地址:argtable3 本地验证: 编译构建 新增验证 // examples/skull.c #include "argtable3.h" int main(int arg ...

  3. JMS微服务项目模板

    项目模板下载地址 vs2022模板:JMS.MicroServiceProjectTemplate2022.zip vs2019模板:JMS.MicroServiceHost.zip 说明 把压缩包解 ...

  4. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.14)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  5. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.10)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  6. 面试官:小伙子来说一说Java中final关键字,以及它和finally、finalize()有什么区别?

    写在开头 面试官:"小伙子,用过final关键字吗?" 我:"必须用过呀" 面试官:"好,那来说一说你对这个关键字的理解吧,再说一说它与finally ...

  7. 【详解配置文件系列】es7配置文件详解

    首发博客地址 系列文章地址 配置文件 # ---------------------------------- Cluster ----------------------------------- ...

  8. K8S增加限制后的启动时间验证

    K8S增加限制后的启动时间验证 背景 前段时间看了下JVM载linux上面的启动时间, 进行过一些验证. 最近想着能够验证一下K8S上面的启动相关的信息 所以就整理了一下. 虽然没有特别好的结论, 但 ...

  9. [转帖]使用 TiUP bench 组件压测 TiDB

    https://docs.pingcap.com/zh/tidb/stable/tiup-bench 在测试数据库性能时,经常需要对数据库进行压测,为了满足这一需求,TiUP 集成了 bench 组件 ...

  10. 转载:ubuntu各个版本的发行时间和停止支持的时间,更新到最新版和代号。

    版本:20.10  代号:Groovy Gorilla  发布时间:2020/10/22 版本:20.04 LTS   代号:Focal Fossa  发布时间:2020/4/23 版本:19.10  ...