React@16.x(61)Redux@4.x(10)- 中间件1 - redux-logger

1,介绍

一个中间件,在 dispatch 分发 action 时触发,并记录一些信息:

在这里插入图片描述

2,使用

官方文档

import { createStore, bindActionCreators, applyMiddleware } from "redux";
import logger from "redux-logger";
import reducer from "./reducer";
import { createAddUserAction, createDeleteUserAction } from "./action/userAction";

const store = createStore(reducer, applyMiddleware(logger));

const actions = {
    addUser: createAddUserAction,
    updateUser: createUpdateUserAction,
    deleteUser: createDeleteUserAction,
};
const bindAction = bindActionCreators(actions, store.dispatch);
bindAction.addUser({ id: 3, name: "name3", age: 20 });
bindAction.deleteUser(1);

输出内容如上图示。

2.1,配置项

可以使用 createLogger 方法,来使用配置项。举例:

import { createLogger } from "redux-logger";

const logger = createLogger({
    predicate: (getState, action) => action.type !== DELETE_USER,
    collapsed: true,
});

const store = createStore(reducer, applyMiddleware(logger));
  1. predicate,配置只输入指定的 action
  2. collapsed,默认打印的 log 是展开的,true 表示折叠。

2.2,注意点

redux-logger 中间件,在 applyMiddleware 的参数位置必须为最后一个

原因1

其他中间件也有可能会 dispatch 一些 action,而 redux-logger 放在最后可以保证记录所有中间件的动作,得到一个完整的日志记录。

原因2

applyMiddleware 的原理 中提到,最后一个中间件参数拿到的是原始的的 store.dispatch,这样才能保证触发的 action 是一个 plain object,从而打印正确的日志。

有的中间件会修改 action,比如下篇文章的 redux-thunk 会修改 action 为一个函数。


以上。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下雪天的夏风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值