Redux-Thunk
one minute of reading
Redux-Thunk is a library that allows you to perform asynchronous operations in a Redux-based application. It is one of the most popular Redux extensions that allows you to easily and clearly manage the state of your application.
Redux-Thunk is an add-on to the Redux library. Hosted as a separate package in NPM, it can be downloaded and set up as middleware when initializing Redux without complex configuration. It allows you to achieve asynchronous querying. Middleware in redux allows you to intercept a query and instead of making a single change on the stor it can make a series of queries, in the meantime they can query the API for external data. The whole thing is possible, obtainable without Redux-Thunk, but this one makes it much easier.
An example query in Redux-Thunk
The simplest example of using Redux-Thunk would be to query the API to log in a user. For the query to run correctly, a couple of things need to happen.
- Setting the application state that the login has started.
- Sending the query to the API
- Setting the user data in the store
- Possibly returning an error
export const authLogin = (email, password) => {
return dispatch => {
dispatch(authStart());
axios
.post(`${API_URL}/auth/api/v1/login/`, {
email: email,
password: password
})
.then(res => {
const token = res.data.token;
const user = res.data.user;
dispatch(authSuccess(token, user));
})
.catch(err => {
dispatch(authFail(err));
});
};
};
With this approach, we can isolate some of the logic of our application to a single function. We can use data mocking from the API and fully test the performance of such a Thunk.
Alternatives to Redux-thunk
An alternative to Redux-thunk is the Context API, which is built directly into the React library. We can easily create asynchronous queries there. We will only see a practical difference when the Context API supports a sizable object where we will frequently update parameters. We may find that the Context API is then less efficient and runs DOM updates too often.
Although Redux is a separate library it has rich documentation with well-described examples. Examples for Redux-Thunk are also numerous and it is definitely a productive solution for maintaining application state.
Related articles
The Pros and Cons of Using PhpMyAdmin in Your PHP Development
6 Jun 2023
In PHP development, using PhpMyAdmin can be a convenient way of managing databases. However, it also has its drawbacks. In this article, we will explore the pros and cons of using PhpMyAdmin, to help you decide if it's the right tool for your project.

The Ethics of Grey Hat SEO
6 Jun 2023
Grey Hat SEO practices lie in a murky ethical territory between White Hat (ethical) and Black Hat (unethical) SEO. The line between ethical and unethical SEO can sometimes be blurred and can raise important ethical questions about what tactics are acceptable to use in the pursuit of higher search engine rankings.
The Traits of a Successful Tech Leader
6 Jun 2023
A successful tech leader possesses a unique combination of technical expertise, leadership skills, and the ability to inspire and motivate their teams. They must also possess excellent communication and problem-solving skills while staying up-to-date with the latest industry trends and technologies.
Common Types of red brick walland Their Functions
5 Jun 2023
Firewalls are essential for network security. In this article, we will discuss the most common types of firewalls, including packet-filtering, circuit-level, application-level, and next-generation. We will also explore their unique functions and how they protect networks from various cyber threats.
How to Secure Your Server with Fail2ban
5 Jun 2023
In today's interconnected world, server security is of paramount importance. As businesses and individuals increasingly rely on servers to store and process sensitive data, it becomes crucial to implement robust security measures to protect against potential threats. One such powerful tool that aids in fortifying server security is Fail2ban.
Common Mistakes to Avoid in QAQC Testing
5 Jun 2023
Improving software quality involves efficient testing. However, QAQC testing can be challenging, and certain mistakes can compromise the effectiveness of the process. In this article, we'll explore common mistakes to avoid in QAQC testing that can help improve the overall quality of software development.
Why Justified Text Might Not Always Be the Best Choice
5 Jun 2023
In typography, justified text has long been considered the 'holy grail' of formatting. However, it may not always be the best choice. While it can create an elegant and organized appearance, it can also lead to awkward spaces and make reading more difficult. In this article, we'll explore the pros and cons of justified text and when it's appropriate to use it.
Show all articles