dav的使用

这篇博客介绍了如何在UMI框架中使用DVA进行状态管理。通过创建models文件夹,设置namespace、state、reducers和effects来管理同步和异步数据。在effects中,利用Generator函数进行异步请求,并通过call和put处理数据。在页面中,通过dispatch调用action来触发fetch方法,实现数据的获取和更新。
摘要由CSDN通过智能技术生成

dva 也是 umi 的状态管理器

首先在pages里面的文件夹(例如home文件)中创建一个models文件夹里面放dva

我们整体抛出的是一个对象
对象中namespace代表的是取值的名字 一般是父文件的名字
state是存放一些值
reducers是存放一些方法都是同步的 写法和redux差不多
effects里可以写一写异步的请求方法 利用Generator 的写法
以上都是对象的形式

例如在 effects 里写一个方法(异步的)
payload这个是传的一些值
call 这个是用作异步调用
put 这个是在异步调用完事之后的方法
select 这个是拿它上一次的值
*fetch ({ payload }, { call, put, select }){
const old = yield select(prev => prev.home.data) //上一次的值
const date = yield call(() => SetList(payload)) // 请求接口
yield put({ // 请求完事之后的调用的reducers方法
type: ‘setData’,
payload: […date.list, …old],
})
}

在页面使用的时候(异步):

props.dispatch({
type:‘home/fetch’,//方法在home下的fetch方法
payload:{ 需要传的值
limit:2,
page:1
}
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值