Rumah > hujung hadapan web > tutorial js > Bagaimanakah Komponen Reaksi Berkomunikasi Antara Satu Sama Lain?

Bagaimanakah Komponen Reaksi Berkomunikasi Antara Satu Sama Lain?

Susan Sarandon
Lepaskan: 2024-11-18 22:28:02
asal
286 orang telah melayarinya

How Do React Components Communicate with Each Other?

Berkomunikasi Antara Komponen React

Dalam React, komunikasi komponen menjadi penting apabila anda perlu mengemas kini data dalam satu komponen berdasarkan perubahan pada komponen lain. Terdapat beberapa cara untuk mendekati perkara ini, bergantung pada hubungan antara komponen.

Komunikasi Ibu Bapa-Anak

Apabila satu komponen bersarang dalam komponen yang lain, komponen anak boleh menerima prop daripada ibu bapa. Jika komponen anak perlu mengemas kini induk, ia boleh menggunakan fungsi panggil balik yang diturunkan sebagai prop.

// Parent component
class Parent extends React.Component {
  handleFilterUpdate = (value) => {
    // Update the state to apply the filter.
    this.setState({ filter: value });
  };

  render() {
    return (
      <Child updateFilter={this.handleFilterUpdate} />
    );
  }
}

// Child component
class Child extends React.Component {
  handleFilterChange = () => {
    // Get the filter value and trigger the parent callback.
    const value = this.refs.filterInput.value;
    this.props.updateFilter(value);
  };

  render() {
    return (
      <input type="text" ref="filterInput" onChange={this.handleFilterChange} />
    );
  }
}
Salin selepas log masuk

Komunikasi Adik Beradik

Apabila komponen adalah adik beradik, mereka tidak mempunyai hubungan langsung ibu bapa-anak. Dalam kes sedemikian, anda boleh menggunakan komponen tertib tinggi (HOC) untuk membalut kedua-dua komponen dan menyediakan saluran komunikasi.

// HOC
const withFilter = (WrappedComponent) => {
  class Wrapper extends React.Component {
    constructor(props) {
      super(props);
      this.state = { filter: '' };
    }

    handleFilterUpdate = (value) => {
      this.setState({ filter: value });
    };

    render() {
      return (
        <WrappedComponent
          filter={this.state.filter}
          updateFilter={this.handleFilterUpdate}
        />
      );
    }
  }

  return Wrapper;
};

// Child components
const Component1 = withFilter(({ filter }) => <p>Filter: {filter}</p>);
const Component2 = withFilter(({ updateFilter }) => (
  <input type="text" onChange={(e) => updateFilter(e.target.value)} />
));
Salin selepas log masuk

Sistem Acara Global

Apabila komponen hidup dalam komponen akar yang berasingan , anda boleh mencipta pemancar peristiwa global atau penyelesaian pengurusan keadaan terpusat (cth., Redux) untuk memudahkan komunikasi. Komponen melanggan acara atau tindakan tertentu dan bertindak balas dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimanakah Komponen Reaksi Berkomunikasi Antara Satu Sama Lain?. 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