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.
Our offer
Web development
Find out moreMobile development
Find out moreE-commerce
Find out moreUX/UI Design
Find out moreOutsourcing
Find out moreRelated articles
Mastering UX writing: A comprehensive guide to enhancing usability
29 Aug 2024
UX writing is the practice of crafting micro-copy that guides a user within digital products. A critical aspect of usability, it helps users understand how to interact with an interface. In this article, we'll unpack UX writing and strategies on mastering it, positioning you to elevate user experience through simple, precise, and engaging copy.
Understanding the concepts of Domain-Driven Design (DDD)
29 Aug 2024
Domain-Driven Design (DDD) is a powerful strategy for building effective, complex software systems. Conceptualizing abstract domain models often poses challenges. This comprehensive guide serves to decipher the intricacies of DDD, delivering a practical roadmap for software developers and architects.
How to design for accessibility: Tips and techniques
29 Aug 2024
In today's digital world, inclusivity and accessibility are critical to creating user-friendly applications. This article will guide you through key principles and practices of Accessibility Design, enabling you to craft more inclusive digital experiences. It aims to aid both seasoned developers and beginners in understanding the significance of these principles in shaping the digital ecosystem.
Understanding the microservices architecture: Pros and cons
26 Aug 2024
Unraveling the world of Microservices Architecture - a prevalent system design trend, this piece discusses its unique benefits and impediments. By dissecting this modern technology, we aim to provide you with insight that can guide choices about your tech stack, illuminating both the sunlit uplands of its advantages and the shadowed landscapes of its pitfalls.
How to use storyboarding in UX design
22 Aug 2024
Storyboarding is a powerful tool in UX design that helps visualize the user journey and identify potential pain points early in the process. By creating a visual narrative, designers can better understand and communicate how users will interact with a product or service.
Strengthening the defenses: The role of artificial intelligence in cybersecurity
13 Aug 2024
In a world where data breaches and cybercrimes continue to rise, cybersecurity has never been more crucial. The role of Artificial Intelligence in fortifying these defenses presents an intersection of profound potential. This union is increasingly becoming the backbone of robust security strategies, revolutionizing how we guard against, detect, and respond to emerging cyber threats.
How to choose the right front-end framework for your project?
13 Aug 2024
In the advent of digital transformation, the right front-end framework becomes a lighthouse guiding your project towards its ultimate destination. Allow us to elucidate the labyrinthine quest of selecting the perfect framework for your project. An insightful journey that uncaps the intricacies of this crucial decision-making process awaits.
Show all articles