基于 react + redux + react-router 构建的移动端单页微应用,适合于 react、redux、react-router 核心概念的理解与掌握。
这个项目是介于 vue-mobile-starter(vue 版本) 之后并且完全仿照 vue-mobile-starter 功能、设计的 react 版本。这个版本里引进了 dva 作为开发脚手架,跟 vue-cli new XXX 出来是同一概念。使用 dva 作为开发框架主要原因之一是我司的 react 项目 大部分由 dva 框架 搭建,而且全部都经受住了线上压力的考验,有兴趣的同学可以深入研究,可以带入到公司项目的生产中去。以下是 dva 的官方说法:
经过一段时间的自学或培训,大家应该都能理解 redux 的概念,并认可这种数据流的控制可以让应用更可控,以及让逻辑更清晰。
但随之而来通常会有这样的疑问:概念太多,并且 reducer, saga, action 都是分离的(分文件)。
这带来的问题是:
编辑成本高,需要在 reducer, saga, action 之间来回切换
不便于组织业务模型 (或者叫 domain model) 。比如我们写了一个 userlist 之后,要写一个 productlist,需要复制很多文件。
还有一些其他的:
saga 书写太复杂,每监听一个 action 都需要走 fork -> watcher -> worker 的流程
entry 书写麻烦
...
而 dva 正是用于解决这些问题。
本项目虽说是一个十来个页面的小型项目,不过却涉及到 react 模块的全局和局部应用配置、第三方 UI 组件的使用、react-router、react-redux 的合理化配置和使用,非常适合于新手对 react 开发核心理念的掌握。
同一个项目用两种框架做最大的感触就是能明显感觉到两个框架之间的差异性,当你切身的体会了两者的差异性后,自然能够在不同的应用场景下选择合适的开发框架📌
觉得此项目对您有帮助,可以点右上角 star 支持一下😊
欢迎提 issue
# 克隆本仓库
git clone https://github.com/JohnsenZhou/react-mobile-starter.git
# 进入仓库目录
cd react-mobile-starter
# 安装依赖
npm install
# 启动项目,本地浏览地址 => localhost:8080
npm start
# 打包压缩
npm run build
以下能帮你更好地理解和使用 dva:
dva 框架中对数据流向的处理(见下图)
.
├── README.md // README 文件
├── public // 静态资源及 index 入口文件
├── node_modules
├── package.json // npm 配置文件
├── .roadhogrc // roadhog 配置文件
├── .roadhogrc.mock // roadhog Mock 数据配置文件
├── src // 项目开发目录
│ ├── index.js // 项目入口文件
│ ├── assets // 资源文件夹
│ ├── components // react 通用组件
│ ├── router.js // react-router 配置文件
│ ├── router // router 对应页面
│ ├── services // 接口文件
│ ├── utils // js 通用工具组件
│ └── models // redux 数据处理文件
└── LICENSE // 证书
MIT license.