React项目
技术选型
- 基于React的umi框架
- React Hooks
- Ant Design
- dva
框架介绍
React Hook 采用函数式组件,更轻量快速,更易于组件化的封装和通用,细化组件,Hook 使你在无需修改组件结构的情况下复用状态逻辑
umi 是可扩展的企业级前端应用框架。Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。
antd 也是一套成熟的ui,对于PC端的项目, 很适用
umi搭建项目
- 脚手架搭建 (详见官网)
- 路由
1 | const routes = [ |
基础配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39基础配置
export default {
// 别名
alias: {
foo: '/tmp/a/b/foo',
},
// 设置路由前缀,通常用于部署到非根目录。
base: '/',
// 用于提供给代码中可用的变量
define: {
BASE_API: ''
},
// 设置哪些模块可以不被打包,通过 <script> 或其他方式引入,通常需要和 scripts 或 headScripts 配置同时使用。
externals: {
别名: 'window.别名',
},
scripts: [
'cdn地址',
],
// 如果要使用本地的图片,图片请放到 public 目录
favicon: '',
metas:[
{
name: 'keywords',
content: '',
},
{
name: 'description',
content: '',
},
{
bar: '',
},
],
// 配置代理能力
proxy: {},
// 配置路由
routes,
};运行时配置
1 | // app.tsx |
使用dva进行状态管理
约定式的 model 组织方式
- src/models 下的文件
- src/pages 下,子目录中 models 目录下的文件
- src/pages 下,所有 model.ts 文件(不区分任何字母大小写)
配置
1 | import { Effect, ImmerReducer, Reducer, Subscription } from 'umi'; |
使用
1 | import React from 'react'; |