प्रतिक्रिया ट्यूटोरियल

रिएक्ट होम प्रतिक्रिया परिचय प्रतिक्रिया आरंभ करें प्रतिक्रिया ES6 रिएक्ट रेंडर एचटीएमएल प्रतिक्रिया JSX प्रतिक्रिया घटक प्रतिक्रिया वर्ग प्रतिक्रिया सहारा प्रतिक्रिया घटनाक्रम प्रतिक्रिया सशर्त प्रतिक्रिया सूचियाँ प्रतिक्रिया प्रपत्र प्रतिक्रिया राउटर प्रतिक्रिया ज्ञापन प्रतिक्रिया सीएसएस स्टाइलिंग प्रतिक्रिया सास स्टाइलिंग

प्रतिक्रिया हुक

एक हुक क्या है? राज्य का उपयोग करें उपयोग प्रभाव उपयोग प्रसंग उपयोग रेफरी रेड्यूसर का उपयोग करें कॉलबैक का उपयोग करें मेमो का उपयोग करें कस्टम हुक

प्रतिक्रिया अभ्यास

प्रतिक्रिया प्रश्नोत्तरी प्रतिक्रिया अभ्यास प्रतिक्रिया प्रमाण पत्र

प्रतिक्रिया ज्ञापन


उपयोग memoकरने से रिएक्ट एक घटक को प्रस्तुत करना छोड़ देगा यदि उसके प्रॉप्स नहीं बदले हैं।

इससे प्रदर्शन में सुधार हो सकता है।

यह खंड रिएक्ट हुक का उपयोग करता है। हुक के बारे में अधिक जानकारी के लिए रिएक्ट हुक अनुभाग देखें ।


मुसीबत

इस उदाहरण में, Todosघटक तब भी फिर से प्रस्तुत करता है जब टोडो नहीं बदले हैं।

उदाहरण:

index.js:

import { useState } from "react";
import ReactDOM from "react-dom";
import Todos from "./Todos";

const App = () => {
  const [count, setCount] = useState(0);
  const [todos, setTodos] = useState(["todo 1", "todo 2"]);

  const increment = () => {
    setCount((c) => c + 1);
  };

  return (
    <>
      <Todos todos={todos} />
      <hr />
      <div>
        Count: {count}
        <button onClick={increment}>+</button>
      </div>
    </>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));

Todos.js:

const Todos = ({ todos }) => {
  console.log("child render");
  return (
    <>
      <h2>My Todos</h2>
      {todos.map((todo, index) => {
        return <p key={index}>{todo}</p>;
      })}
    </>
  );
};

export default Todos;

जब आप इंक्रीमेंट बटन पर क्लिक करते हैं, तो Todosकंपोनेंट फिर से रेंडर करता है।

यदि यह घटक जटिल था, तो यह प्रदर्शन समस्याओं का कारण बन सकता है।


w3schools CERTIFIED . 2022

प्रमाणन हासिल करें!

रिएक्ट मॉड्यूल को पूरा करें, अभ्यास करें, परीक्षा दें और w3schools प्रमाणित बनें !!

$95 नामांकन

समाधान

इसे ठीक करने के लिए, हम उपयोग कर सकते हैं memo

घटक को अनावश्यक रूप से पुन: प्रस्तुत memoकरने से रोकने के लिए उपयोग करें ।Todos

Todosघटक निर्यात को इसमें लपेटें memo:

उदाहरण:

index.js:

import { useState } from "react";
import ReactDOM from "react-dom";
import Todos from "./Todos";

const App = () => {
  const [count, setCount] = useState(0);
  const [todos, setTodos] = useState(["todo 1", "todo 2"]);

  const increment = () => {
    setCount((c) => c + 1);
  };

  return (
    <>
      <Todos todos={todos} />
      <hr />
      <div>
        Count: {count}
        <button onClick={increment}>+</button>
      </div>
    </>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));

Todos.js:

import { memo } from "react";

const Todos = ({ todos }) => {
  console.log("child render");
  return (
    <>
      <h2>My Todos</h2>
      {todos.map((todo, index) => {
        return <p key={index}>{todo}</p>;
      })}
    </>
  );
};

export default memo(Todos);

अब Todosघटक केवल फिर से प्रस्तुत करता todosहै जब इसे प्रोप के माध्यम से पास किया जाता है अद्यतन किया जाता है।