使用redux-thunk实现异步redux(基础文章)

简介: 使用redux-thunk实现异步redux(基础文章)

使用redux-thunk实现异步redux

Redux存在一个问题,就是无法实现异步的action,这也就是为什么我们要引入redux-thunk的原因。

在哪里引入redux-thunk?

在redux的核心组件store中引入。我们引入的这个thunk,相当于一个中间件。所以我们同时需要从redux中引入applyMiddleware,放入createStore的第二个参数中。

import {createStore,applyMiddleware} from 'redux';
import reducer from './reducer'
import thunk from 'redux-thunk'
export default createStore(reducer,applyMiddleware(thunk))
复制代码

异步action和普通的action有什么不同?

普通action返回的是对象,但是异步action返回的是一个函数。

异步action和同步action的区别

// 同步action
export const decrement = (number) => ({type: DECREMENT,data: number});
// 异步增加的action
export const incrementAsync = (number) => {
    return dispatch => {
        setTimeout(() => {
            dispatch({type: INCREMENT,data: number})
        },1000)
    }
}
复制代码

最后别忘了,组件中已经没有定时器了,定时器在异步action中。

incrementIfAsync = () => {
    const number = this.numberRef.current.value * 1;
    this.props.incrementAsync(number);
}
复制代码

codeSandBox在线演示(使用redux-thunk实现异步action操作状态)

相关文章
|
6月前
|
JavaScript 中间件
简单描述一下redux-thunk的个人理解
简单描述一下redux-thunk的个人理解
32 0
|
17天前
|
存储 JavaScript 前端开发
Redux原理
【10月更文挑战第26天】Redux通过单一数据源、只读状态、纯函数修改状态等核心概念,以及清晰的工作流程和中间件机制,为JavaScript应用程序提供了一种强大而可预测的状态管理方案。它与React等视图库的结合能够有效地实现数据驱动的视图更新,提高应用程序的可维护性和可扩展性。在实际应用中,根据项目的具体需求和复杂度,可以灵活地运用Redux及其相关的工具和技术,来构建高效、稳定的前端应用。
71 33
|
3月前
|
JavaScript 前端开发 中间件
Redux 中 Thunk 的概念
【8月更文挑战第31天】
29 0
|
存储 JavaScript 前端开发
什么是Redux?
什么是Redux?
|
6月前
|
资源调度 JavaScript 前端开发
Redux异步解决方案 1. Redux-Thunk中间件
Redux异步解决方案 1. Redux-Thunk中间件
46 0
|
6月前
|
资源调度 JavaScript 前端开发
Redux 异步解决方案2. Redux-Saga中间件
Redux 异步解决方案2. Redux-Saga中间件
25 0
|
JavaScript 中间件
React-Redux-thunk实现原理
React-Redux-thunk实现原理
82 0
|
JavaScript 中间件 Python
React-Redux-Saga实现原理
React-Redux-Saga实现原理
65 0
|
JavaScript 中间件
React-Redux-thunk
React-Redux-thunk
48 0
|
存储 JavaScript 中间件
React-Redux-Saga
React-Redux-Saga
28 0