Later on, in this article, I am going to add Redux on top of one of the projects that I have worked over the last one and some years. Redux is one of the hottest libraries in front-end development these days. However, many people are confused about what it is and what its benefits are. Connect and share knowledge within a single location that is structured and easy to search. I put together an entire course covering all of this and more! There are even addon packages that let you log every action that comes through, rewind and replay them, and anything else you could imagine.

what does redux do

The recommended way to start new apps with React and Redux is by using our official Redux+TS template for Vite, or by creating a new Next.js project using Next’s with-redux template. There can either be one reducer if it is a simple app or multiple reducers taking care of different parts or slices of the global state in why redux a bigger application. Instead, if anyone wants to change the state of the application, then they’ll need to express their intention of doing so by emitting or dispatching an action. Whenever a user adds an item to the cart, the application has to internally handle that action by adding that item to the cart object.

What Makes Redux Predictable?

The popular undo/redo feature requires system-level planning. Because undo/redo needs to record and replay every single change of data in the app, you must take it into account in the architecture from the very beginning. If it’s done as an afterthought, it’d require changing a lot of files which is a recipe for countless bugs. With only React, there’s actually a better way to fetch and store data. We can ask our very kind chef Shotwell to do the shopping for all his chef friends.

Reducers are pure functions that take the current state of an application, perform an action, and return a new state. The reducer handles how the state (application data) will change in response to an action. This means that your own component will need to re-render less often, because most of the time those specific pieces of data haven’t changed. Next, we have created a reducer called cartReducer which takes the state (with the default initial state) and the action as parameters. It switches on the action type, and then whichever case matches with the dispatched action type, it makes the necessary update and returns the fresh new version of the updated state. For simple projects, such as you would do as a beginner – for example a TODO list – there isn’t a lot of state.

Redux Toolkit

We are going to send an action of type rotate, with a payload that we are going to get in the App component. This way, we can combine our two actions in just one function and reduce a bit our code. Now we need to retrieve the state from our store and to say that we want the start and stop actions to be used for changing the state. I recommend you to take a look at redux documentation and some article like this, I believe you will find an answer to your question. Redux is a predictable state container for JavaScript and comes as an
external library which can be used together with front-end frameworks
like React, Angular, Ember.js, Backbone, etc.

what does redux do

React Redux is the official Redux UI binding library for React. If you are using Redux and React together, you should also use React Redux to bind these two libraries. You can use Redux together with React, or with any other view library. It is tiny (2kB, including dependencies), but has a large ecosystem of addons available.

Its intended usage adopts the design principles of React – writing declarative components. While it is possible to write this logic by hand, doing so would become very repetitive. In addition, optimizing UI performance would require complicated logic. The Redux store is the main, central bucket which stores all the states of an application. It should be considered and maintained as a single source of truth for the state of the application.

We’ll talk more about actions and reducers in the following sections. Being a state management library, Redux will basically store and manage all the application’s states. This task of handling multiple states from multiple components efficiently can become challenging when the application grows in size.