State management in react js



**State Management in React **

**Managing State in React**

**What is State?**

- In the world of React, "state" is like a memory box within a component where you store dynamic data.

- This data can change over time, and it directly affects what your users see on the screen.


**Why Does State Management Matter?**

- Imagine your app responding to user actions, updating smoothly as they interact.

- State management ensures your app keeps track of changes, reflecting them in real-time for a seamless user experience.


**Local State - useState Hook**

- For component-specific data, React's `useState` hook is your ally.

- It's like having a mini memory space for each component to store its unique data.

```jsx

import React, { useState } from 'react';


function Counter() {

  const [count, setCount] = useState(0);

  return (

    <div>

      <p>Count: {count}</p>

      <button onClick={() => setCount(count + 1)}>Increment</button>

    </div>

  );

}

```


**Sharing State - Propagation**

- Sometimes, data needs to travel from a parent component to its child.

- It's like passing notes in class, but in code!

```jsx

// ParentComponent.js

import React, { useState } from 'react';

import ChildComponent from './ChildComponent';


function ParentComponent() {

  const [message, setMessage] = useState('Hello from parent');

  return <ChildComponent message={message} />;

}

```


**Global State Management - Redux Example**

- When your app becomes big and complicated, global state management tools like Redux come to the rescue.

```jsx

// Reducer example

const initialState = { count: 0 };

const reducer = (state = initialState, action) => {

  switch (action.type) {

    case 'INCREMENT':

      return { ...state, count: state.count + 1 };

    default:

      return state;

  }

};


// Component using Redux

import React from 'react';

import { useSelector, useDispatch } from 'react-redux';

import { increment } from './actions';


function Counter() {

  const count = useSelector(state => state.count);

  const dispatch = useDispatch();

  return (

    <div>

      <p>Count: {count}</p>

      <button onClick={() => dispatch(increment())}>Increment</button>

    </div>

  );

}

```


**Context API - The Built-in Hero**

- Context API is like a magic potion from React itself.

- It lets components share data without long chains of passing down props.

```jsx

// Context setup

import React, { createContext, useContext, useState } from 'react';

const MyContext = createContext();


export function MyProvider({ children }) {

  const [info, setInfo] = useState('Hello from context');

  return (

    <MyContext.Provider value={{ info, setInfo }}>

      {children}

    </MyContext.Provider>

  );

}


// Component using Context

import React, { useContext } from 'react';

import { MyContext } from './Context';


function ChildComponent() {

  const { info, setInfo } = useContext(MyContext);

  return (

    <div>

      <p>Info: {info}</p>

      <button onClick={() => setInfo('Updated context info')}>

        Update Info

      </button>

    </div>

  );

}

```


**Wrapping Up**

- State management in React is like choreographing a dance - it keeps your app in sync.

- Whether it's local state, global libraries like Redux, or React's own Context API, each has its place.

- By mastering state management, you ensure your app performs gracefully for every user interaction.


**Thank You!**


---
Written by Bhavik Prajapati. 🧑‍💻📝

https://www.instagram.com/p/CvUTP7CLJnA/?utm_source=ig_web_copy_link&igshid=MzRlODBiNWFlZA==


Follow:

https://bhavik-portfolio.netlify.app/

https://www.youtube.com/channel/UCiP_JoAO2aNwFXVX-nrTc-w



Comments

Popular posts from this blog

Recursion