【react】react18的学习(六)--redux中间件

上一篇:react18的学习(五)–样式私有化

中间件

redux提供的中间件功能,用于在派发操作之前进行操作;具体中间件是第三方封装的;

redux-logger

打印redux派发状态的日志,涉及更新前状态值、更新操作、更新后状态值等;

// src\store\index.js
import { applyMiddleware, createStore } from 'redux'
import logger from 'redux-logger'
import reducer from './reducers'

const store = createStore(reducer, applyMiddleware(logger))
export default store
redux-thunk

内部会触发两次dispatch派发,第一次由中间件内部的派发,获取返回的异步函数,然后执行异步函数进行第二次派发;

redux-promise(更方便)

同上派发两次,reducers都只执行一次,就是action的异步配置不同;

import { applyMiddleware, createStore } from 'redux'
import logger from 'redux-logger'
import promise from 'redux-promise'
import thunk from 'redux-thunk'
import reducer from './reducers'

const store = createStore(reducer, applyMiddleware(logger, thunk或promise))
export default store
// 配置异步action
import * as TYPES from '../action-types'
const delay = () => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve()
    }, 1000)
  })
}
const voteAction = {
  // redux-thunk写法
  // sup() {
  //   return async dispatch => {
  //     await delay()
  //     dispatch({ type: TYPES.VOTE_SUP })
  //   }
  // },
  // redux-promise写法,与同步写法更接近
  async sup() {
    await delay()
    return { type: TYPES.VOTE_SUP }
  },
  // 普通同步写法
  opp() {
    return { type: TYPES.VOTE_OPP }
  },
}
export default voteAction
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值