概念

redux的中间件就是用来处理reducer和actions之间应用,可以处理reducer和actions之间的数据流,实现如异步action,日志输出等操作.

在redux中通过applyMiddleware方法使用中间件

常用的异步处理action中间件有redux-thunk,redux-sage.

redux-logger:提供日志输出

使用例子

redux-thunk的使用例子

//store/index.js文件

import reduxThunk from "redux-thunk";
const store = createStore(reducer,composeWithDevTools(applyMiddleware(reduxThunk)));

//store/reducer纯函数

const defaultState={
  login:{}
}
export default (state=defaultState,actions)=>{
  switch(actions.type){
    case 'LOGIN':
      ...
    }
  return state;
}

//组件发送action

import {LoginActions} from '@api/login';

import {connect} from 'react-redux';

<Form

  name="normal_login"

  className="login-form"

  initialValues={{ remember: true }}

  onFinish={this.props.onFinish}

>

const mapDispatchToProps=(dispatch)=>({

  // 提交内容{username:,password:}

  onFinish(values){

    dispatch(LoginActions(values))

  }

})

export default connect(null,mapDispatchToProps)(LoginInput)

//redux-thunk定义异步的action

import api from './api';
import http from '@utils/http.js';
// redux-thunk异步:让action是一个函数,并且返回一个函数,返回函数内部有dispatch参数,通过内部函数结合async+await实现异步
//LoginActions是一个action,外部需要dispatch调用
export const LoginActions=(params)=>{
  //请求后台接口
  return async (dispatch)=>{
    let result=await http.post(api.login,params);
    dispatch({
      type:'LOGIN',
      data:result
    })
  }
}

redux中间件的理解的更多相关文章

  1. 3.3 理解 Redux 中间件(转)

    这一小节会讲解 redux 中间件的原理,为下一节讲解 redux 异步 action 做铺垫,主要内容为: Redux 中间件是什么 使用 Redux 中间件 logger 中间件结构分析 appl ...

  2. 理解 Redux 中间件机制

    Redux 的 action 是一个 JS 对象,它表明了如何对 store 进行修改.但是 Redux 的中间件机制使action creator 不光可以返回 action 对象,也可以返回 ac ...

  3. redux middleware 的理解

    前言 这几天看了redux middleware的运用与实现原理,写了一个百度搜索的demo,实现了类似redux-thunk和redux-logger中间件的功能. 项目地址:https://git ...

  4. Redux:中间件

    redux中间件概念 比较容易理解. 在使用redux时,改变store state的一个固定套路是调用store.dispatch(action)方法,将action送到reducer中. 所谓中间 ...

  5. react+redux教程(七)自定义redux中间件

    今天,我们要讲解的是自定义redux中间件这个知识点.本节内容非常抽象,特别是中间件的定义原理,那多层的函数嵌套和串联,需要极强逻辑思维能力才能完全消化吸收.不过我会多罗嗦几句,所以不用担心. 例子 ...

  6. 【React全家桶入门之十三】Redux中间件与异步action

    在上一篇中我们了解到,更新Redux中状态的流程是这种:action -> reducer -> new state. 文中也讲到.action是一个普通的javascript对象.red ...

  7. redux中间件和redux-thunk实现原理

    redux-thunk这个中间件可以使我们把这样的异步请求或者说复杂的逻辑可以放到action里面去处理,redux-thunk使redux的一个中间件,为什么叫做中间件 我们说中间件,那么肯定是谁和 ...

  8. Redux 中间件与函数式编程

    为什么需要中间件 接触过 Express 的同学对"中间件"这个名词应该并不陌生.在 Express 中,中间件就是一些用于定制对特定请求的处理过程的函数.作为中间件的函数是相互独 ...

  9. react第十八单元(redux中间件redux-thunk,redux工程目录的样板代码,规范目录结构)

    第十八单元(redux中间件redux-thunk,redux工程目录的样板代码,规范目录结构) #课程目标 中间件:中间件增强redux的可扩展性,实现功能复用的目的. redux-thunk异步逻 ...

随机推荐

  1. 爬取腾讯网的热点新闻文章 并进行词频统计(Python爬虫+词频统计)

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:一棵程序树 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  2. Feature list, Standard and Test plan for BETA Release 12/22/2015

    ===================BETA RELEASE FEATRURE LIST==================== 1. Log in and account manager for ...

  3. Laravel异步队列全攻略

    最近项目需求,研究了laravel的异步队列.官方文档虽然很是详细,但也有些晦涩难懂,在此记录下步骤,供大家参考. 1.修改/config/queue.php文件 <?php return [ ...

  4. Django中MySQL事务的使用

    Django中事物的使用 from django.db import transaction @transaction.atomic通过transaction的@transaction.atomic装 ...

  5. 杂园日记-H5-IOS-Android混合开发

    1.js 调用 原生API iOS: window.webkit.messageHandlers.yourFunName.postMessage({"1":"3" ...

  6. Linux 高 wio 分析

    High IO wait Table of Contents 1. 现象 2. 分析 2.1. iotop或者pidstat 2.1.1. iotop 2.1.2. pidstat 2.2. 脚本 2 ...

  7. php 超全局变量(整理)

    来源:https://www.cnblogs.com/wsybky/p/8745286.html 一.$GLOBALS 在GLOBALS数组中,每一个变量为一个元素,键名对于变量名,值对于变量的内. ...

  8. discuz修改禁止性别保密选项

    第一步找到source/function/function_profile.php 第二步  注释下面的代码 else { $html .= '<option value="0&quo ...

  9. 我们常听到的WAL到底是什么

    什么是 WAL WAL(Write Ahead Log)预写日志,是数据库系统中常见的一种手段,用于保证数据操作的原子性和持久性. 在计算机科学中,预写式日志(Write-ahead logging, ...

  10. filter和interceptor的区别

    前言 最近在面试的时候,被问到了这个问题,觉得答得不是很好,在此进行整理和记录,供自己学习,也希望能帮助到大家. 什么是Filter 在java的javax.servlet下有一个接口Filter.任 ...