dva的技术脉络
这里是我的培训视频
链接:https://pan.baidu.com/s/1ITMT-3e-rL1FRVQ6YDoBRw?pwd=2fuk
提取码:2fuk
- 和umi好基友的关系,很容易适配,建项目就内置了
- 以umi项目为例
models 文件夹下默认是数据模型
申明一个 task.ts
export default { namespace: 'task', state: { //搜索框 SearchForm:{ TaskName:"", TaskCode:"", TaskStatus:"", }, //分页组件 PageInfo:{ pageSize:"10", total:0, Current:1 }, //用于渲染表格的数据 DataSource:[], DictInfo:{ CityList:[{Name:"上海",id:1},{Name:"北京",id:2}], TaskStatus:[{Name:"运行中",value:"1"}] }, effects:{ //初始化字典 * initPageInfo({ payload }, { call, put }) { const response = yield call(initPageInfo, payload); yield put({ type: 'saveinitDictInfo', payload: response, }); }, },//从后台取数据,native交互,操作事件 reducers:{ saveinitDictInfo(state, { payload }) { return produce(state, (draftState: any) => { draftState.dictinfo = { ...payload.data, } }); }, },//本地内存计算事件 },
搜索框
//订阅数据,形成本地的props @connect(({ task, loading }: any) => ({ SearchForm: task.SearchForm, loading: loading, })) //改变数据怎么? const { dispatch } = props; dispatch({ type: 'task/Search', payload: record, }); //获取loading !!this.props.loading.effects['task/Search']
数据列表
//订阅数据,形成本地的props @connect(({ task, loading }: any) => ({ PageInfo: task.PageInfo, DataSource: task.DataSource, loading: loading, })) //改变数据怎么? const { dispatch } = props; dispatch({ type: 'task/Search', payload: record, }); //获取loading !!this.props.loading.effects['task/Search']
漫思
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
2020-06-12 ES6拷贝方法
2020-06-12 vue.js 键盘enter事件的使用