码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • redux-saga中间件


    懒得废话了,既然您找到这里,肯定知道要用 redux-saga 做什么事情了。
    1、新建saga的文件夹, 例如 saga/home_saga.js

    import {
        all,
        put,
        takeEvery
    } from 'redux-saga/effects';
    
    function* getHomeListFn(){
        yield put({type: 'xxxxx'})
        // 进行到这里是已经对页面触发的 dispatch 为 getHomeList_type做了拦截到了这里
        // 然后这里进行接口请求 对数据做处理后 再出发一次action
    }
    
    function* getHomeList() {
        yield takeEvery('getHomeList_type', getHomeListFn()) // 监听type类型以及触发事件
    }
    
    function* homeSaga_model() {
        yield all([getHomeList()]) // 数组类型, 可以同时监听多个saga事件
    }
    
    export default homeSaga_model;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2、如何将 saga 文件进行注入

    以 create-react-app 为例,index.js 文件之前使用了redux,大概是这种

    import { createStore } from 'redux';
    import { Provider } from 'react-redux';
    import allStore from 'xxxx/xxx/index'; // reducer模块化,统一导出
    ...
    let store = createStore(allStore);
    ...
     // 数据可以注入到页面中, 页面中使用connect就可以连接了
        xxxx
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    之后我们以这个为基础 再注入 saga

    import { createStore, applyMiddleware } from 'redux';
    import { Provider } from 'react-redux';
    import createSagaMiddleware from 'redux-saga';
    import homeSagas from 'xxxx/xxxx/homeSaga.js';
    import allStore from 'xxxx/xxx/index'; // reducer模块化,统一导出
    
    ...
    let sagaMiddle = createSagaMiddleware();
    let store = createStore(allStore, applyMiddleware(sagaMiddle));
    // 通过 applyMiddleware 将saga注入到redux中,就可以进行监听,进行一个劫持
    sagaMiddle.run(homeSagas)// 上一段已经注入saga了,这句话是运行写的单个saga文件,
    ...
     // 数据可以注入到页面中, 页面中使用connect就可以连接了
        xxxx
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    一会我把代码看看上传到git, 地址链接

  • 相关阅读:
    JFinal学习
    1024程序员节|基于Springboot实现运动场馆预约信息管理系统
    2.9.5 Ext JS的Object类型处理及便捷方法
    我的创作纪念日(一周年)
    视频批量混剪剪辑软件类似剪映设计一个模板后, 视频,图片,文字,转场,音频,特效都可以系统随机
    QT在线安装指南
    综合案列——产品模块布局
    Windows常见的几种权限维持
    中集集团人工智能企业CIMCAI中集飞瞳,深入贯彻国家关于智慧港口数字港口建设部署要求全球顶尖港航AI核心技术打造超一流智慧港口
    Map集合源码分析
  • 原文地址:https://blog.csdn.net/qq_37449852/article/details/126127468
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号