Rumah >hujung hadapan web >tutorial js >Memahami React.memo untuk Pengoptimuman Prestasi dalam React
React.memo ialah komponen tertib tinggi (HOC) yang membantu mengoptimumkan prestasi komponen React dengan menghalang pemaparan semula yang tidak perlu. Ia digunakan untuk menghafal komponen berfungsi, yang bermaksud React akan melangkau memaparkan semula komponen jika propnya tidak berubah. Ini amat berguna untuk pengoptimuman prestasi dalam aplikasi React yang besar di mana pemaparan semula mungkin mahal.
React.memo berfungsi dengan melakukan perbandingan cetek props komponen. Jika prop adalah sama dengan pemaparan sebelumnya, React akan melangkau pemaparan komponen dan sebaliknya menggunakan hasil daripada pemaparan sebelumnya. Ini boleh mengurangkan dengan ketara bilangan pemaparan semula dan meningkatkan prestasi, terutamanya apabila memaparkan senarai besar atau komponen mahal.
const MemoizedComponent = React.memo(Component);
Di mana:
Mari kita lihat contoh mudah bagaimana React.memo boleh digunakan:
import React, { useState } from 'react'; const ChildComponent = React.memo(({ name }) => { console.log("Child component re-rendered"); return <div>Hello, {name}!</div>; }); function App() { const [name, setName] = useState('John'); const [count, setCount] = useState(0); return ( <div> <ChildComponent name={name} /> <button onClick={() => setName('Doe')}>Change Name</button> <button onClick={() => setCount(count + 1)}>Increment Count</button> <p>Count: {count}</p> </div> ); } export default App;
Secara lalai, React.memo melakukan perbandingan cetek prop, tetapi anda boleh menyediakan fungsi perbandingan tersuai jika anda memerlukan lebih kawalan ke atas cara prop dibandingkan.
Fungsi perbandingan tersuai harus kembali benar jika komponen seharusnya tidak dipaparkan semula dan palsu jika sepatutnya.
const ChildComponent = React.memo( ({ name, age }) => { console.log("Child component re-rendered"); return <div>Hello, {name}, {age}!</div>; }, (prevProps, nextProps) => { // Custom comparison: only re-render if name changes return prevProps.name === nextProps.name; } ); function App() { const [name, setName] = useState('John'); const [age, setAge] = useState(30); return ( <div> <ChildComponent name={name} age={age} /> <button onClick={() => setName('Doe')}>Change Name</button> <button onClick={() => setAge(age + 1)}>Increment Age</button> </div> ); }
Dalam contoh ini, ChildComponent hanya akan dipaparkan semula apabila prop nama berubah, walaupun prop umur berubah, terima kasih kepada fungsi perbandingan tersuai.
React.memo ialah alat pengoptimuman yang ringkas namun berkuasa dalam React untuk menghalang pemaparan semula komponen berfungsi yang tidak perlu. Dengan menghafal komponen dan menggunakan perbandingan prop cetek (atau fungsi perbandingan tersuai), React boleh melangkau pemaparan komponen tersebut apabila prop mereka tidak berubah, yang membawa kepada peningkatan prestasi, terutamanya dalam aplikasi yang besar atau kompleks.
Atas ialah kandungan terperinci Memahami React.memo untuk Pengoptimuman Prestasi dalam React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!