广告
返回顶部
首页 > 资讯 > 精选 >react dva实现的代码怎么编写
  • 173
分享到

react dva实现的代码怎么编写

2023-06-25 14:06:24 173人浏览 安东尼
摘要

今天就跟大家聊聊有关React dva实现的代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。dvadva是一个基于redux和redux-saga的数据流方案,然后为了简化

今天就跟大家聊聊有关React dva实现的代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

dva

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

react dva实现的代码怎么编写

使用dva

react dva实现的代码怎么编写

定义一个模型,有点像redux-toolkit。
使用connect连接

react dva实现的代码怎么编写
react dva实现的代码怎么编写

像redux的connect一样连接。

react dva实现的代码怎么编写

启动。
然后如何派发action。

react dva实现的代码怎么编写

通过对应的指令找到对印的reducer,派发。

react dva实现的代码怎么编写

dva的基本操作就是这样,使用起来比较轻便。

实现dva

思路:封装一个函数,创建store,通过model收集reducer和state,改变reducer中的方法名字。

react dva实现的代码怎么编写

首先是model。因为有多个model,所以我们要收集起来。

react dva实现的代码怎么编写

先通过namesapce改变rducer中的方法名字。

react dva实现的代码怎么编写

再将其保存起来。

react dva实现的代码怎么编写
react dva实现的代码怎么编写

然后通过Provider就可以注入进去。

react dva实现的代码怎么编写

改造model的reducer,返回redux接受的reducer。此时model的state是不会变的,他只是初始的state,组件真正接受的是redux中的state。
这个getReducer只会调用一次,用来返回真正的reducer。

react dva实现的代码怎么编写

初步实现完毕。

支持异步

dva是集成redux-saga的,所以用法也类似。

react dva实现的代码怎么编写

在创建model的时候可以通过effects创建saga中间件。然后派发对应的action

react dva实现的代码怎么编写
react dva实现的代码怎么编写

实现

思路:处理每个model的effects,转会为对应的saga函数,采用takeEvery监听每个属性名(如asyncADD,转化为takeEvery(‘asyncADD', ()=>{})等等),然后通过redux-saga提供的createSagaMiddleware创建一个中间件,利用run方法执行各个model中的effects转化后的saga函数。
代码:

react dva实现的代码怎么编写

通过getSagas转化每个model的effects并且存在一个数组里面,然后通过forEach一个个run起来。
看如何转化

react dva实现的代码怎么编写

可以看到,每个model的effects会在getSaga被转化为function*(){},然后遍历单个model的effects,对每个属性都做比如*asyncADD(){}处理,如图通过getWatcher返回个saga函数,通过fork开启一个子进程,不会干扰主进程的运行。

react dva实现的代码怎么编写

而每个getWatcher返回的就是saga函数(generator函数)他会通过takeEvery监听当前的属性(key)并且执行后面那个effects。这里需要改造一下redux-saga的Put方法,使他单独做一些prefixType的逻辑。
这样就基本完成,每个model的effects都会被处理城saga函数去run,而且effects的每个方法都转化为了key,通过takeEvery去监听。这里还需要对effect的每个方法名加上前缀

react dva实现的代码怎么编写

这样就大功搞成了。

react dva实现的代码怎么编写

可以正常运行。

router的实现

react dva实现的代码怎么编写
react dva实现的代码怎么编写

使用没什么区别
dva是继承了connected-react-router的

react dva实现的代码怎么编写
react dva实现的代码怎么编写

所以用法跟其差不多,注意,异步的逻辑只能写在effects,reducer是同步的,不能继续派发的。

react dva实现的代码怎么编写
react dva实现的代码怎么编写
react dva实现的代码怎么编写

实现:

react dva实现的代码怎么编写
react dva实现的代码怎么编写
react dva实现的代码怎么编写

基于connectd-react-router

react dva实现的代码怎么编写

还记得connectd-react-router怎么使用吗,第一步,创建router对象。

react dva实现的代码怎么编写

第二步,使用中间件。

react dva实现的代码怎么编写

传入api给app._router作为参数。这样就完成了。

react dva实现的代码怎么编写

当他派发push的时候会被路由中间件拦截处理,push到另一个页面去。

看完上述内容,你们对react dva实现的代码怎么编写有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: react dva实现的代码怎么编写

本文链接: https://www.lsjlt.com/news/305119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • react dva实现的代码怎么编写
    今天就跟大家聊聊有关react dva实现的代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。dvadva是一个基于redux和redux-saga的数据流方案,然后为了简化...
    99+
    2023-06-25
  • react dva实现的代码
    目录dva使用dva实现dva支持异步router的实现实现:dva dva是一个基于redux和redux-saga的数据流方案,然后为了简化开发体验,dva额外内置了react-...
    99+
    2022-11-12
  • 怎么编写更好的React代码
    这篇文章主要介绍“怎么编写更好的React代码”,在日常操作中,相信很多人在怎么编写更好的React代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么编写更好的React...
    99+
    2022-10-19
  • 如何编写简洁的React代码
    这篇文章给大家介绍如何编写简洁的React代码,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。只对一个条件进行条件性渲染如果你需要在一个条件为真时有条件地呈现一些东西,在一个条件为假时不...
    99+
    2022-10-19
  • python实现烟花的实例代码怎么编写
    本篇文章给大家分享的是有关python实现烟花的实例代码怎么编写,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现代码如下:# -*- coding:&nb...
    99+
    2023-06-22
  • JavaScript实现跟随广告的代码怎么编写
    本篇文章为大家展示了JavaScript实现跟随广告的代码怎么编写,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。浮动广告是目前网站很常见的一种广告形式,浮动广告能实时跟随用户的浏览,有效的传达产品要...
    99+
    2023-06-25
  • VB.NET下载程序实现代码怎么编写
    今天就跟大家聊聊有关VB.NET下载程序实现代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。对于VB.NET语言的应用来说,其中有很多小技巧值得我们去掌握,来充实我们的开发...
    99+
    2023-06-17
  • 10 个编写更简洁React代码的实用小技巧
    本篇文章给大家整理分享 10 个编写更简洁 React 代码的实用小技巧,希望对大家有所帮助!1. JSX 简写如何将 true 值传递给给定的 props?【相关推荐:Redis视频教程、编程视频】在下面的示例中,使用 prop show...
    99+
    2023-05-14
    前端 JavaScript React.js
  • Python实现网页爬虫基本实现代码怎么编写
    Python实现网页爬虫基本实现代码怎么编写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python是一款功能强大的计算机程序语言,同时也可以被看做是一款面向...
    99+
    2023-06-17
  • 编写更简洁React代码的技巧有哪些
    这篇文章主要介绍“编写更简洁React代码的技巧有哪些”,在日常操作中,相信很多人在编写更简洁React代码的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写更简洁React代码的技巧有哪些”的疑...
    99+
    2023-07-04
  • QT编写地图实现设备点位的示例代码怎么写
    本篇文章为大家展示了QT编写地图实现设备点位的示例代码怎么写,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、前言在学习JS语法的时候发现其实程序都大同小异,正所谓一通百通,熟悉各大概的语法以后基本...
    99+
    2023-06-26
  • vue+antv实现雷达图的示例代码怎么编写
    这篇文章给大家介绍vue+antv实现雷达图的示例代码怎么编写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、下载依赖npm install @antv/data-setnpm install @antv/g2二、代...
    99+
    2023-06-21
  • 怎么编写更好的JS代码
    这篇文章主要介绍“怎么编写更好的JS代码”,在日常操作中,相信很多人在怎么编写更好的JS代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么编写更好的JS代码”的疑惑有所帮...
    99+
    2022-10-19
  • 怎么编写高效的TS代码
    这篇文章主要介绍“怎么编写高效的TS代码”,在日常操作中,相信很多人在怎么编写高效的TS代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么编写高效的TS代码”的疑惑有所帮...
    99+
    2022-10-19
  • C++链栈的实现代码怎么写
    这篇文章主要讲解了“C++链栈的实现代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++链栈的实现代码怎么写”吧!链栈简述链栈从概念上看是链表和栈的结合,含有栈先进后出的特性,也具...
    99+
    2023-07-02
  • listbox实现多选的代码怎么写
    在多数编程语言中,ListBox控件都支持多选功能。以下是一些常见编程语言的示例代码:1. C# (Windows Forms):`...
    99+
    2023-08-18
    listbox
  • Java实现猜数字小游戏代码怎么编写
    Java实现猜数字小游戏代码怎么编写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。▲游戏规则:系统随机生成一个范围0——...
    99+
    2023-06-26
  • Sharding-JDBC自动实现MySQL读写分离的示例代码怎么编写
    Sharding-JDBC自动实现MySQL读写分离的示例代码怎么编写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、ShardingSphere和Shard...
    99+
    2023-06-25
  • 怎么避免编写pandas代码
    本篇内容主要讲解“怎么避免编写pandas代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么避免编写pandas代码”吧!设置from platf...
    99+
    2022-10-19
  • java实现时钟代码怎么写
    以下是一个简单的Java代码示例,用于实现一个时钟:```javaimport java.time.LocalTime;import...
    99+
    2023-08-29
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作