记录项目搭建的大致流程,详细的可以查看 Ant Design 实战教程(beta 版),或者Umi文档及Dva文档

1. 项目初始化

全局安装umi

yarn global add umi

新建项目文件夹并cd进入

mkdir my-app
cd my-app

初始化package.json文件

yarn init -y

新建src文件

mkdir src

命令方式新建组件文件

umi generate pages index/index // 创建pages目录并在当前目录下新建index文件夹以及在index文件夹下新建index文件

generate: umi命令行工具

在package.json中添加启动脚本命令

// package.json
{"scripts": {+   "start": "umi dev",
+   "build": "umi build"}
}

在终端输入 yarn start,就可以启动项目了

2. 使用antd

umi 3 之后 插件 “umi-plugin-react” 已不再适用, 而是改用 “@umijs/preset-react”

{"devDependencies": {-   "umi-plugin-react": "^1"
+   "@umijs/preset-react": "^1"}
}

安装好 "@umijs/preset-react"和 “antd” 之后 需要在config配置文件中添加配置,首先在根目录下新建config文件夹,并新建config.js文件

yarn add @umijs/preset-react
yarn add antd

配置文件中也不是 umi 3 原先的写法

export default {- plugins: [
-   ['umi-plugin-react', {-     dva: {},
-     antd: {},
-     ...
-   }]
- ],
+ dva: {},
+ antd: {},
+ ...
}

升级到 Umi 3 :升级到umi3
在页面组件中使用antd组件

// 引入
import { Card, Button } from 'antd';// 使用<Card key={card.id}><div>Q: {card.setup}</div><div><strong>A: {card.punchline}</strong></div></Card>

3. 使用dva做状态管理

安装dva

yarn add dva

配置文件中配置

export default {+ dva: {},
+ antd: {},
+ ...
}

src目录下新建models文件夹并创建model.js文件

export default {namespace: 'puzzleCard',state: {data: [{ id: 1,setup: 'Did you hear about the two silk worms in a race?',punchline: 'It ended in a tie',},{id: 2,setup: 'What happens to a frog\'s car when it breaks down?',punchline: 'It gets toad away',},],counter: 100,}
}

将组件和model.js文件关联起来

import { connect } from 'dva';const namespace = 'puzzleCard' // puzzleCard对应的是model.js文件里面的namespace
const mapStateToProps = (state) => {const cardList = state[namespace].datareturn {cardList}
}
export default connect(mapStateToProps)(Index)

点击触发dispatch处理
先在model.js文件中添加reducer处理

reducers: {addNewCard(state, { payload: newCard }) {const nextCounter = state.counter + 1;const newCardData = { ...newCard, id: nextCounter };const nextData = state.data.concat(newCardData)return {data: nextData,counter: nextCounter,}}}

在页面组件中添加点击触发事件

<Button onClick={() => props.onClickAdd({setup: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',punchline: 'here we use dva',})}> 添加卡片 </Button>
const mapDispatchToProps = (dispatch) => {return {onClickAdd: (newCard) => {const action = {type: `${namespace}/addNewCard`,payload: newCard}dispatch(action)}}
}
export default connect(mapStateToProps, mapDispatchToProps)(Index)

umi+antd+dva项目搭建相关推荐

  1. Umi + AntD Pro 项目搭建

    一.Umi 介绍 umi 是可扩展的企业级前端应用框架,Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展. create-react-app 对比: cr ...

  2. react + antd pro 项目搭建及发布流程

    #antd Pro 项目环境搭建 ##一.搭建项目 参考网址:https://pro.ant.design/docs/deploy-cn ###1.安装 从 GitHub 仓库中直接安装最新的脚手架代 ...

  3. umi+dva+antd项目搭建

    umi+dva+antd 项目搭建 说明 设计特点 创建应用 目录 注意特点 约定式路由 嵌套路由 Scroll to top 页面间跳转 配置config/config.js(或.umirc.js) ...

  4. dva 打包多个html,使用dva+umi+antd构建页面(一)

    使用dva+umi+antd构建页面 首先确保安装npm或者yarnhtml 建立新应用 首先建立应用目录node mkdir myapp && cd myapp 推荐使用 yarn ...

  5. dva使用及项目搭建

    一.简介 本文将简单分析dva脚手架的使用及项目搭建过程. 首先,dva是一个基于redux和redux-saga的数据流方案,然后为了简化开发体验,dva还额外内置了react-router和fet ...

  6. react:react + dva + router + roadhog 基础项目搭建

    一.脚手架安装 第一步:全局安装 dva,这里有个条件,node 版本要 >= 6.5 且 dva-cli 版本要在 0.7x. npm install dva-cli -g 第二步:查看版本号 ...

  7. 创建Dva项目的方法(dva-cli,umi)

    一共有俩种方式创建DvaJS项目,一种是通过dva-cli创建,另一种是通过umi. 通过dva-cli创建项目 先安装dva-cli. $ npm install dva-cli -g 然后创建项目 ...

  8. react、umi、dva

    React 一.React的简介 1.介绍 React 是一个用于构建用户界面的 JAVASCRIPT 库. React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图). Rea ...

  9. 视频教程-19年全新React教程全家桶实战redux+antd+dva+Hooks前端js视频-ReactJS

    19年全新React教程全家桶实战redux+antd+dva+Hooks前端js视频 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/j ...

最新文章

  1. sklearn输出模型参数_如何使用sklearn优雅地进行数据挖掘?
  2. C++的Android接口---配置NDK
  3. 什么是Github的元数据metadata以及如何备份github上的数据
  4. Ubuntu 14.04数据库服务器--mysql的安装和配置
  5. skywalking搭建与使用
  6. 特斯拉车顶维权女车主称被恐吓 将公布特斯拉提供的不完整数据
  7. ubuntu12.04循环登录,无法进桌面的问题。
  8. 导航抽屉(Google+与YouTube)
  9. java visibility_浅析Android中的visibility属性
  10. Android Studio failed to resolve:com.android.support.appcompat-v7:28+ 报错
  11. hutool-all 导入Excel 文件 学习笔记
  12. 用HE提供的免费DNS解析服务通过IPv6 DNS检测
  13. 照片教你eclipse通过使用gradle 打包Android
  14. 估算CarSim中车辆轮胎的纵向刚度与侧向刚度
  15. the voyage游戏android,Bullet Voyage
  16. inventor如何画心_Illustrator | 如何画一个心型图案
  17. EPICS -- 测试asynDriver和设备支持的示例1-- 连接测试
  18. 抓取汽车之家新闻资讯做安卓app新闻资讯数据
  19. foj2198 Problem 2198 快来快来数一数 dp 矩阵快速幂
  20. Android的GridView和ScrollView的嵌套

热门文章

  1. C语言中的string.h头文件
  2. 菜鸟在 windows 下 python 中安装 jupyter 踩坑要点 、被神化的 VsCode
  3. 搭建自己的gitlab服务器命令
  4. Android 通过scheme跳转支付宝实现支付
  5. 卡方分布概率密度函数的推导
  6. 对象数据成员的初始值
  7. ITween Stop
  8. 索引图像和真彩色RGB图像介绍
  9. 题目1069:查找学生信息
  10. Python处理数据中的空值(缺失值)时用到的dropna()函数和fillna()函数总结,通过示例弄懂这两个函数的用法。