浅学dva

dva概念

基本概念

在这里插入图片描述

为了简化react开发 使用的脚手架
dva = React-Router + Redux + Redux-saga

数据流图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gZa2AocF-1656593590480)(C:\Users\李大圆\Desktop\react学习总结\image-20220630154645060.png)]

dva代码流水线

dva 开发个product组件
第一步 创建路由 dva路由的概念是组成应用的不同页面, so 路由==页面。在route文件夹写product的js,返回product的ui
第二步 添加路由信息到路由表 编辑src下的router.js 将第一步路由信息引入
第三步 编写可复用的ui组件(多个页面分享 UI 元素 (或在一个页面使用多次)) 
第四步 定义Model
第五步 在index.js载入Model (app.model(require('./models/product').default))
第六步 使用connect串联model和component


Router

位置:src下 index.js引入router.js  router.js  这个就是前端路由 网址 
app.router(require('./router').default);
  <Router history={history}>
      <Switch>
        <Route path="/" exact component={IndexPage} />
        <Route path="/products" exact component={Products} />
      </Switch>
    </Router>

Route Component

以页面为维度的组件
通常connect Model的组件都是React Component.
通常存在/routes/目录下
/components/目录下的是纯组件(别人复用的组件)

Model

model的概念 主要用来处理数据和逻辑
dva 通过 model 的概念把一个领域的模型管理起来,包含同步更新 state 的 reducers,处理异步逻辑的 effects,订阅数据源的 subscriptions 。
State =>model的状态数据 通常是个对象 不可变数据 每次变化之后都是全新的state
Action =>Action就是个对象,改变state唯一途径,注意点:dispatch 是在组件 connect Models以后,通过 props 传入的
dispatch=>触发action的函数,改变state唯一途径。
Reducer=>接收state和action 返回一个新的state 归并 这是一个纯函数 同样的输入对应同样的输出 与视图对应
Effect=>副作用 常用于异步操作 同样的输入不同样的输出
Subscription=>用于订阅一个数据源,然后根据条件 dispatch 需要的 action。

call和input

是effect函数内部的处理函数
call 执行异步任务
put 发出一个action 类似dispatch

connect方法

是一个函数 绑定state到view
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值