dva 的一些奇怪的用法
dva 基础 请自行查阅,本文不科普
3、dva 知识导图
4、antd-admin 有没有听说过?
5、中间件 redux-saga 可以重点看一下
6、dva入门指引
7、umi + dva 可以了解一下dva 怎么和其他框架配置使用
8、roadhog 配置 ,dva 配置????
一、一些需要理解的概念
1、dispatch 是异步的(基本上所有用到的情况都是异步的,考虑到本人知识面的情况,可能存在一些同步情况的实现)
2、effects 的函数参数,第一个action(这里不一定要使用payload, type 值被占有了), 第二个参数,里面有put, call, select, take 等redux-saga 的一些方法,可以查阅上面redux-saga 文档。
3、yield 的异步的东西不会阻碍js线程的正常运行
二、特殊需求
1. 需要实现每个几秒延时执行某个操作
// 首先实现delay 函数
const delay = timeout => {
return new Promise(resolve => {
setTimeout(resolve, timeout);
});
};
// 然后在effect函数里面
{
where (flag){
yield call(delay, 3000);
}
}
2. conform Dialog流程控制
import React from "react"
import { Dialog } from "组件库"
export default ({
title = "",
content = "确认删除?"
} = {}) => new Promise((resolve, reject) => {
Dialog.confirm({
content: <span>{content}</span>,
title,
onOk: () => {
resolve(true)
},
onCancel: () => {
resolve(false)
}
})
})
3. take 等待其他model 的 一些action执行,like
let datas = yield select(state => state.common.datas);
if (!datas.length) {
yield take("common/changeBase");
datas = yield select(state => state.common.datas);
}
持续更新中。。。
欢迎交流!!!