တုံ့ပြန် ကျူတိုရီရယ်

React Home React Intro React စတင်လိုက်ပါ။ ES6 ကို တုံ့ပြန်ပါ။ Render HTML ကို တုံ့ပြန်ပါ။ JSX ကို တုံ့ပြန်ပါ။ အစိတ်အပိုင်းများကို တုံ့ပြန်ပါ။ React Class React Props အဖြစ်အပျက်များကို တုံ့ပြန်ပါ။ အခြေအနေများကို တုံ့ပြန်ပါ။ တုံ့ပြန်မှုစာရင်းများ တုံ့ပြန်မှုပုံစံများ Router ကို တုံ့ပြန်ပါ။ တုံ့ပြန်မှတ်စု CSS Styling ကို တုံ့ပြန်ပါ။ Sass Styling ကို တုံ့ပြန်ပါ။

React Hooks

Hook ဆိုတာဘာလဲ။ ပြည်နယ်ကိုအသုံးပြုပါ။ အသုံးပြုမှုအကျိုးသက်ရောက်မှု အသုံးအနှုန်း အသုံးပြုရန် Ref Reducer ကိုအသုံးပြုပါ။ ဖုန်းခေါ်ဆိုမှုကို အသုံးပြုပါ။ Memo ကိုအသုံးပြုပါ။ စိတ်ကြိုက်ချိတ်

တုံ့ပြန်လေ့ကျင့်မှုများ

တုံ့ပြန်မေးခွန်း တုံ့ပြန်လေ့ကျင့်မှုများ တုံ့ပြန်လက်မှတ်

React useMemoHook


React useMemoHook သည် အလွတ်ရထားသောတန်ဖိုးကို ပြန်ပေးသည်။

ပြန်လည်တွက်ချက်ရန် မလိုအပ်စေရန် အလွတ်ကျက်မှတ်ခြင်းကို တန်ဖိုးတစ်ခုအဖြစ် သိမ်းဆည်းခြင်းဟု ယူဆပါ။

Hook သည် useMemo၎င်း၏မှီခိုမှုတစ်ခုအား အပ်ဒိတ်လုပ်သည့်အခါမှသာ အလုပ်လုပ်ပါသည်။

ဒါက စွမ်းဆောင်ရည်ကို မြှင့်တင်ပေးနိုင်ပါတယ်။

useMemoHook နှင့် Hook သည် useCallbackဆင်တူသည်။ အဓိကကွာခြားချက်မှာ အ useMemoလွတ်ကျက်မှတ်ထားသောတန်ဖိုးကို useCallbackပြန်ပေးကာ အလွတ်ကျက်ထားသည့်လုပ်ဆောင်ချက်ကို ပြန်ပေးခြင်းဖြစ်သည်။ useCallback အခန်းuseCallback တွင် ပိုမိုလေ့လာနိုင်ပါသည်


စွမ်းဆောင်ရည်

Hook ကို useMemoမလိုအပ်ဘဲ လည်ပတ်ခြင်းမှ စျေးကြီးပြီး အရင်းအနှီးများသော လုပ်ဆောင်ချက်များကို ထိန်းသိမ်းထားရန် အသုံးပြုနိုင်သည်။

ဤဥပမာတွင်၊ ကျွန်ုပ်တို့တွင် render တစ်ခုစီတိုင်းတွင် လုပ်ဆောင်နိုင်သော တန်ဖိုးကြီးသည့်လုပ်ဆောင်ချက်တစ်ခုရှိသည်။

အရေအတွက်ကိုပြောင်းလဲခြင်း သို့မဟုတ် လုပ်စရာတစ်ခုထည့်သည့်အခါ၊ လုပ်ဆောင်မှုတွင် နှောင့်နှေးမှုကို သင်သတိပြုမိပါလိမ့်မည်။

ဥပမာ-

လုပ်ဆောင်ချက် ညံ့ဖျင်းခြင်း။ expensiveCalculationလုပ်ဆောင်ချက်သည် render တစ်ခုစီတိုင်းတွင် အလုပ်လုပ်သည် -

import { useState } from "react";
import ReactDOM from "react-dom";

const App = () => {
  const [count, setCount] = useState(0);
  const [todos, setTodos] = useState([]);
  const calculation = expensiveCalculation(count);

  const increment = () => {
    setCount((c) => c + 1);
  };
  const addTodo = () => {
    setTodos((t) => [...t, "New Todo"]);
  };

  return (
    <div>
      <div>
        <h2>My Todos</h2>
        {todos.map((todo, index) => {
          return <p key={index}>{todo}</p>;
        })}
        <button onClick={addTodo}>Add Todo</button>
      </div>
      <hr />
      <div>
        Count: {count}
        <button onClick={increment}>+</button>
        <h2>Expensive Calculation</h2>
        {calculation}
      </div>
    </div>
  );
};

const expensiveCalculation = (num) => {
  console.log("Calculating...");
  for (let i = 0; i < 1000000000; i++) {
    num += 1;
  }
  return num;
};

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


w3schools CERTIFIED . 2022

လက်မှတ်ရယူပါ။

React modules များကိုဖြည့်ပါ၊ လေ့ကျင့်ခန်းများလုပ်ပါ၊ စာမေးပွဲကိုဖြေဆိုပြီး w3schools မှအသိအမှတ်ပြုခံရပါ။

$95 စာရင်းသွင်းပါ။

သုံးပါ။ useMemo

ဤလုပ်ဆောင်ချက်ပြဿနာကို ဖြေရှင်းရန်၊ လုပ်ဆောင်ချက်ကို useMemoအလွတ်ကျက်ရန် Hook ကို အသုံးပြုနိုင်ပါသည် expensiveCalculation၎င်းသည် လိုအပ်သည့်အခါမှသာ လုပ်ဆောင်ချက်ကို လုပ်ဆောင်နိုင်မည်ဖြစ်သည်။

ကျွန်ုပ်တို့သည် စျေးကြီးသော လုပ်ဆောင်ချက်ခေါ်ဆိုမှုဖြင့် ခြုံငုံ useMemoနိုင်ပါသည်။

useMemoမှီခိုမှုကိုကြေငြာရန် Hook သည် ဒုတိယဘောင်တစ်ခုကို လက်ခံသည် စျေးကြီးသောလုပ်ဆောင်ချက်သည် ၎င်း၏မှီခိုမှုများပြောင်းလဲသွားမှသာ လုပ်ဆောင်နိုင်မည်ဖြစ်သည်။

count အောက်ပါဥပမာတွင်၊ စျေးကြီးသောလုပ်ဆောင်ချက် သည် ပြောင်းလဲ သည့်အခါတွင်သာ လုပ်ဆောင်မည်ဖြစ်ပြီး todo များထည့်သည့်အခါတွင်သာ လုပ်ဆောင်မည်ဖြစ်သည်။

ဥပမာ-

useMemoHook ကို အသုံးပြု၍ စွမ်းဆောင်ရည် ဥပမာ

import { useState, useMemo } from "react";
import ReactDOM from "react-dom";

const App = () => {
  const [count, setCount] = useState(0);
  const [todos, setTodos] = useState([]);
  const calculation = useMemo(() => expensiveCalculation(count), [count]);

  const increment = () => {
    setCount((c) => c + 1);
  };
  const addTodo = () => {
    setTodos((t) => [...t, "New Todo"]);
  };

  return (
    <div>
      <div>
        <h2>My Todos</h2>
        {todos.map((todo, index) => {
          return <p key={index}>{todo}</p>;
        })}
        <button onClick={addTodo}>Add Todo</button>
      </div>
      <hr />
      <div>
        Count: {count}
        <button onClick={increment}>+</button>
        <h2>Expensive Calculation</h2>
        {calculation}
      </div>
    </div>
  );
};

const expensiveCalculation = (num) => {
  console.log("Calculating...");
  for (let i = 0; i < 1000000000; i++) {
    num += 1;
  }
  return num;
};

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