项目模版-react&&dva
2017/09/25
升级dva@2
。[email protected]请转移至该分支
依然采用react
全家桶,并尝试引入 dva 简化redux
的使用。
UI 框架选择了棒的不行的 ant design。
数据请求库使用axios,当然可以选用其他。
大体上保持了dva
官方推荐的目录结构。
├── src/
│ ├── components/ # 组件
│ ├── config/ # 一些配置项
│ ├── models/ # 数据模型
│ ├── routes/ # 路由组件(页面维度)
│ ├── services/ # 数据接口
│ ├── utils/ # 工具
│ ├── app.js # 入口文件
│ ├── createApp.js
│ └── router.js # 路由配置
├── webpack/ # webpack配置
├── index.html
├── package.json
在组件的设计上,应该明确components
和routes
目录中的组件职责:
- 尽量保持
components
中的为纯组件(PureComponent),不直接通过connect
订阅model
上的数据,一般来说它所需要的数据都来源于props
。 routes
是页面维度的组件,它的职责是绑定相关联的model
数据,以数据容器的角色包含其它子组件。
接口服务都放在services
中,再由model
来调用。
合理的设计model
中的state
。
npm:
npm install
npm run dll
npm run dev
yarn:
yarn
yarn dll
yarn dev
在启动dev
任务之前请务必先运行一次dll
任务。该功能可以大大提升webpack
打包性能,关于dll plugin
的详细资料可查看 dll plugin
- 启用
editorconfig
来让编辑器自动读取格式化文件;启用eslint
。 - dva资料:
webpack
的配置:webpack.config.js
是基础配置,一般情况下不需要更改;- 在
prod
配置中,publicPath
属性区分了测试和线上环境的静态资源引用路径,请按需替换; dll
配置用来生成一个单独的、平时不需要更改的vendor.min.js
,在业务代码之前引入,只有在后续升级或者增删了主要依赖包才需要重新执行dll
(大部分情况下后续更新的都是业务代码,更新依赖包的频次远远小于业务),这样一来只要这部分不发生改变,我们平时更新业务代码时这部分是不需要更迭版本的,利用原有缓存而不需要用户重新下载。