Mengapa Anda Perlu Mengelak Fungsi Anak Panah atau Mengikat dalam JSX Props?

Linda Hamilton
Lepaskan: 2024-11-06 20:27:03
asal
588 orang telah melayarinya

Why Should You Avoid Arrow Functions or Binding in JSX Props?

Mengapa Menggunakan Fungsi Anak Panah atau Bind dalam JSX Props adalah Tidak-Tidak

Apabila menggunakan React, adalah penting untuk mengelak daripada menggunakan fungsi anak panah atau mengikat dalam prop JSX. Amalan ini boleh membawa kepada isu prestasi dan tingkah laku yang salah.

Kecelakaan Prestasi

Menggunakan fungsi anak panah atau mengikat dalam prop JSX memaksa fungsi ini dicipta semula pada setiap pemaparan. Ini bermakna:

  • Fungsi lama dibuang, mencetuskan kutipan sampah.
  • Penyampaian berterusan banyak elemen boleh mengakibatkan kegelisahan prestasi.
  • Komponen yang bergantung pada PureComponents atau shouldComponentUpdate masih mencetuskan penyampaian semula kerana prop fungsi anak panah yang berubah.

Gelagat Salah

Pertimbangkan contoh berikut:

onClick={() => this.handleDelete(tile)}
Salin selepas log masuk

Kod ini akan mencipta fungsi baharu pada setiap pemaparan, menyebabkan React menandai komponen sebagai kotor dan mencetuskan penyampaian semula. Walaupun prop jubin tidak berubah, komponen akan dipaparkan semula kerana fungsi anak panah berbeza.

Amalan Terbaik

Untuk mengelakkan perangkap ini, gunakan mengikuti amalan terbaik:

  • Ikat pengendali acara dalam pembina:
constructor(props) {
  super(props);
  this.handleDelete = this.handleDelete.bind(this);
}
Salin selepas log masuk
  • Buat fungsi anak panah di luar kaedah pemaparan:
const handleDelete = tile => {
  // Handle delete logic
};
Salin selepas log masuk

Nota Tambahan:

Adalah penting untuk ambil perhatian bahawa fungsi anak panah adalah baik apabila digunakan di bahagian lain komponen, seperti dalam kaedah render. Walau bagaimanapun, perkara ini harus dielakkan apabila memberikan pengendali acara kepada prop JSX.

Atas ialah kandungan terperinci Mengapa Anda Perlu Mengelak Fungsi Anak Panah atau Mengikat dalam JSX Props?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!