Rumah > hujung hadapan web > tutorial js > Bagaimana Mengurus Komunikasi Antara Komponen dalam React dengan Berkesan?

Bagaimana Mengurus Komunikasi Antara Komponen dalam React dengan Berkesan?

Linda Hamilton
Lepaskan: 2024-11-27 01:48:11
asal
135 orang telah melayarinya

How to Effectively Manage Inter-Component Communication in React?

Komunikasi Antara Komponen dalam React

Dalam React, mengekalkan keadaan merentas berbilang komponen boleh menjadi mencabar. Begini cara untuk memudahkan komunikasi antara komponen yang berkaitan:

Senario #1: Penapis sebagai Anak Senarai

Lepaskan pengendali daripada ibu bapa (Senarai) kepada anak ( Penapis). Apabila penapis berubah, pengendali dalam Penapis memanggil kaedah induk untuk mengemas kini keadaan dan mencetuskan pemaparan semula dalam Senarai.

Senario #2: Induk Biasa untuk Penapis dan Senarai

Perkenalkan komponen induk yang mewakilkan komunikasi. Ibu bapa menghantar pengendali kepada Penapis dan mengemas kini keadaan kedua-dua Penapis dan Senarai apabila penapis berubah.

Senario #3: Sistem Acara Global

Untuk komponen tanpa hubungan ibu bapa-anak, pertimbangkan untuk menggunakan sistem acara global. Tentukan nama acara, seperti 'filterUpdated' dan langgannya dalam kedua-dua komponen Penapis dan Senarai. Pada perubahan penapis, cetuskan acara, yang akan memberitahu mana-mana komponen yang dilanggan untuk mengemas kini keadaannya dengan sewajarnya.

Contoh:

// Global events file
export const myEmitter = new EventEmitter();

// Filters component
componentDidMount() {
  myEmitter.on('filterUpdated', this.handleFilterUpdate);
}

handleFilterChange() {
  // Emit event and pass new filter value
  myEmitter.emit('filterUpdated', newFilterValue);
}

// List component
componentDidMount() {
  myEmitter.on('filterUpdated', this.handleFilterUpdate);
}

handleFilterUpdate(newFilterValue) {
  // Update state
  this.setState({ filterValue: newFilterValue });
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Mengurus Komunikasi Antara Komponen dalam React dengan Berkesan?. 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