zoukankan      html  css  js  c++  java
  • react创建项目学习基础语法Redux的中间件redux-thunk 、redux-saga的简单应用(四)

    1.安装  npm install --save redux-thunk

    2.安装  npm install --save redux-saga

    二者可选择其中一样使用;

    // store/index文件  如果你要使用中间件,就必须在redux中引入applyMiddleware
    import { createStore, applyMiddleware, compose   } from 'redux';
    // import thunk from 'redux-thunk'
    import reducer from './reducer'    
    import mySaga from './mySaga'
    import createSagaMiddleware from 'redux-saga'   //引入saga
    const sagaMiddleware = createSagaMiddleware();   //创建saga中间件
    
    // 使用Chrome浏览器安装插件,在浏览器右上角有三个点,然后点击"更多工具",再点击"扩展程序",再点击右侧的"打开Chrome网上商店",然后搜索Redux DevTools 直接安装;(翻墙工具)
    // 配置Redux Dev Tools插件 控制台调试仓库数据
    // const store = createStore(reducer,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__())
    // redux-thunk 要和 Redux Dev Tools插件一并使用了,需要使用增强函数。使用增加函数前需要先引入compose
    // Redux的中间件  redux-thunk Redux-saga
    const composeEnhancers =   window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?
        window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) : compose
    
    // const enhancer = composeEnhancers(applyMiddleware(thunk)) // 如果你想用 redux-thunk
    
    const enhancer = composeEnhancers(applyMiddleware(sagaMiddleware)) // 如果你想用 redux-saga
    
    const store = createStore(reducer, enhancer) // 创建数据存储仓库
    
    // then run the saga
    sagaMiddleware.run(mySaga)
    
    export default store
    
    // 官方写法
    // const store = createStore(
    //   reducer,
    //   applyMiddleware(thunk)
    // ) 
    // 在store文件夹下面新建 mySaga.js
    // import { call, put, takeEvery, takeLatest } from 'redux-saga/effects'
    
    // Sagas 可以多种形式 yield Effect。最简单的方式是 yield 一个 Promise。
    // Generator 函数
    // mySaga.js 编写业务逻辑
    
    // 注意,使用 yield* 将导致该 Javascript 运行环境 漫延 至整个序列。 由此产生的迭代器(来自 game())将 yield 所有来自于嵌套迭代器里的值。一个更强大的替代方案是使用更通用的中间件组合机制。
    function* mySaga() {
      yield console.log(1111)
    }
    
    export default mySaga;
  • 相关阅读:
    GCC编译器原理(三)------编译原理三:编译过程(3)---编译之汇编以及静态链接【2】
    xmind转为markdown
    XMind破解
    读取字符串中的数字
    "Cannot declare member function ...to have static linkage"错误
    error: cannot bind non-const lvalue reference of type
    (C++ Error: Incompatible types in assignment of ‘char*’ to ‘char [2])
    C++中的map
    17 jQuery阶段_操作样式_操作属性_动画_节点操作
    第一部分:网络多任务_day01_网络编程基础
  • 原文地址:https://www.cnblogs.com/lhl66/p/12486976.html
Copyright © 2011-2022 走看看