Friday, September 26, 2025
HomeLanguagesWhat is a store in Redux ?

What is a store in Redux ?

Redux is the state management library that is used in JavaScript apps. It is used to manage the state of data and access them at different components level in the app. In redux, there are three parts as follows:

  • Actions
  • Reducer
  • Store

Store: It is an object which provides the state of the application. This object is accessible with help of the provider in the files of the project. The only way to change the state inside it is to dispatch an action on it.

There are three important parts of the store:

  • createStore(): To create a store object in redux.
  • dispatch(action): To change the state of store data by using the actions.
  • getState(): For getting the current state of the store in redux.

Let’s create an application to demonstrate how a store is defined.

Creating React Application

Step 1: Create a React application using the following command:

npx create-react-app example

Step 2: After creating your project folder i.e. example, move to it using the following command:

cd example

Step 3: Install the following modules. From the root directory of your project in the terminal, run the following command:

npm install redux
npm install react-redux

Example: Let’s make a simple counter application with help of redux to understand the store.

In the src folder, make two new folder components and redux. In components add a jsx file named Counter.jsx. In the redux folder, create a folder name actions and counterActions.jsx file to it. Then in redux folder create a folder name reducer and add a file named currencyReducer.jsx. And then in the redux folder add store.js file.

Project Structure: It will look like this.

folder structure

Example: Write down the following code in respective files.

index.js

Javascript




import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import { Provider } from "react-redux";
import appStore from "./redux/store";
 
ReactDOM.render(
    <React.StrictMode>
        <Provider store={appStore}>
            <App />
        </Provider>
    </React.StrictMode>,
    document.getElementById("root")
);


In the above index,js file with help of the provider we are accessing the store in our whole app component.

App.js

Javascript




import "./App.css";
import Counter from "./components/counter";
 
function App() {
    return (
        <div
            style={{
                display: "flex",
                flexDirection: "column",
                alignItems: "center",
                justifyContent: "center",
                height: "100vh",
            }}
        >
            <Counter />
        </div>
    );
}
 
export default App;


In the components folder these files are as follows:

Counter.jsx

Javascript




import React from "react";
import { connect } from "react-redux";
import {
    incrementCount,
    decrementCount,
} from "../redux/actions/counterActions";
 
class Counter extends React.Component {
    render() {
        const { count, incrementCount, decrementCount } = this.props;
        return (
            <div>
                <button onClick={() => decrementCount()}>-</button>
                <span> {count} </span>
                <button onClick={() => incrementCount()}>+</button>
            </div>
        );
    }
}
 
const mapStateToProps = (state) => ({
    count: state,
});
 
const mapDispatchToProps = (dispatch) => ({
    decrementCount: () => dispatch(decrementCount()),
    incrementCount: () => dispatch(incrementCount()),
});
 
export default connect(mapStateToProps, mapDispatchToProps)(Counter);


In redux folder these files as follows:

actions/counterActions.jsx

Javascript




const INCREMENT = "INCREMENT";
const DECREMENT = "DECREMENT";
 
const incrementCount = () => ({
    type: INCREMENT,
});
 
const decrementCount = () => {
    return {
        type: DECREMENT,
    };
};
 
export { INCREMENT, incrementCount, decrementCount, DECREMENT };


reducer/currencyReducer.jsx

Javascript




import { INCREMENT, DECREMENT } from "../actions/counterActions";
 
const currencyReducer = (state = 0, action) => {
    switch (action.type) {
        case INCREMENT:
            return state + 1;
        case DECREMENT:
            return state - 1;
        default:
            return state;
    }
};
 
export { currencyReducer };


redux/store.js

Javascript




import { createStore } from "redux";
import { currencyReducer } from "./reducers/currencyReducer";
 
const appStore = createStore(currencyReducer);
 
export default appStore;


Step to run the application: Run the application using the following command:

npm start

Output: 

Store in Redux

Store in Redux

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
RELATED ARTICLES

Most Popular

Dominic
32320 POSTS0 COMMENTS
Milvus
84 POSTS0 COMMENTS
Nango Kala
6683 POSTS0 COMMENTS
Nicole Veronica
11854 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11910 POSTS0 COMMENTS
Shaida Kate Naidoo
6795 POSTS0 COMMENTS
Ted Musemwa
7071 POSTS0 COMMENTS
Thapelo Manthata
6755 POSTS0 COMMENTS
Umr Jansen
6762 POSTS0 COMMENTS