欢迎光临散文网 会员登陆 & 注册

dva框架-快速了解

2022-09-27 21:03 作者:doubleyong  | 我要投稿

0 1

dva的介绍



官方文档:

https://dvajs.com/guide/


背景:

使用redux-saga需要在action , reducers,saga三个文件中切换,而可以使用dva框架来简化这一个过程.

dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。


0 2

dva的安装


通过 npm 安装 dva-cli 并确保版本是 0.9.1 或以上。

安装dva



创建项目



0 3

dva目录结构


图片



0 4

models文件介绍 


model模块的写法:

namespace: 命名空间,后续我们取得数据的时候要注意加上命名空间

state: 状态,即数据

subscriptions:这里的方法,直接就会执行,一般用于数据的初始化

reducers: 纯函数,如果有异步,必须借助effect 

effects:副作用(业务逻辑,包含同步和异步)

       这里的键名,就是action中type的字段

      payload: action传参数,都放在这里

      call() :  表示调用异步函数

                如果yield call的是一个Promise对象,那只有在Promise返回的是resolve方法的情况下,下面跟着的yield put及后面的代码才会执行,若返回了rejector则后面的代码则全部停止执行


      put 表示 dispatch action,其他的还有 select, take, fork, cancel 等

      注:yield put直接调用reducer,是堵塞的,同步,

             调用非reducer函数,是非堵塞的,异步

             使用put.resolve ,堵塞的,同步



model模块的写法,如下:



0 5

services 请求数据


将请求后台数据的方法,全部提取到services文件夹中

代码如下:



0 6

util 公共文件


将提取的一些公共方法放在此文件夹中


如:封装的请求方法request.js:



0 7

router.js 路由设置文件


与react-router-dom v5 语法相似,只是已经将其它封装到dva中,所以要从dva中去引用router.


代码如下:



0 8

组件中的路由跳转


NavLink, Route,Redirect等,与react中的react-router-dom v5 语法一致

注: 最新的react-router-dom v6的语法与v5还是有很大的不同



0 9

index.js 入口文件


model():注入数据,需要哪一个models中的数据 ,就必须在入口中对其进行注入,可以与之的Provider关联起来

router(): 引用设置路由的文件



0 9

routes文件夹,类似pages


和react 组件的写法一样,对于model中的状态使用,也使用connect方法,与redux的使用方法相似


代码如下:


总结 

dva框架介绍完成,希望通过本文能让大家对dva框架有个基本了解


更多内容,请关注公主号:bug收集 


dva框架-快速了解的评论 (共 条)

分享到微博请遵守国家法律