


Cara memanggil kaedah komponen anak dalam komponen induk React
Kaedah panggilan: 1. Panggilan dalam komponen kelas boleh dilaksanakan menggunakan React.createRef(), pengisytiharan fungsi ref atau props atribut onRef tersuai 2. Panggilan dalam komponen fungsi dan komponen Hook boleh dilaksanakan menggunakan UseImperativeHandle atau forwardRef membuang ref komponen kanak-kanak untuk mencapai ini.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi react18, komputer Dell G3.
Dalam React, kami sering memanggil kaedah komponen induk dalam komponen anak, biasanya menggunakan panggil balik props. Tetapi kadangkala ia juga perlu untuk memanggil kaedah komponen kanak-kanak dalam komponen induk untuk mencapai perpaduan yang tinggi. Terdapat banyak kaedah, ambil mengikut keperluan.
Dalam komponen kelas
1 React.createRef()
- <.>Kelebihan: Mudah difahami, tunjuk dengan ref.
- Kelemahan: subkomponen menggunakan HOC tidak tersedia dan tidak boleh menunjuk kepada subkomponen sebenar Sebagai contoh, beberapa kaedah penulisan biasa, subkomponen yang dibalut oleh @observer of mobx bukan This kaedah terpakai.
import React, { Component } from 'react'; class Sub extends Component { callback() { console.log('执行回调'); } render() { return <div>子组件</div>; } } class Super extends Component { constructor(props) { super(props); this.sub = React.createRef(); } handleOnClick() { this.sub.callback(); } render() { return ( <div> <Sub ref={this.sub}></Sub> </div> ); } }
2. Pengisytiharan fungsi ref
- Kelebihan: penulisan ref adalah mudah
- Kelemahan: Subkomponen menggunakan HOC tidak tersedia dan tidak boleh menunjuk ke subkomponen sebenar (sama seperti di atas)
... <Sub ref={ref => this.sub = ref}></Sub> ...
3 Gunakan prop untuk menyesuaikan atribut onRef
- Kelebihan: Jika sub-komponen bersarang dengan HOC, ia juga boleh menunjuk ke subkomponen sebenar.
- Kelemahan: Perlu menyesuaikan atribut props
import React, { Component } from 'react'; import { observer } from 'mobx-react' @observer class Sub extends Component { componentDidMount(){ // 将子组件指向父组件的变量 this.props.onRef && this.props.onRef(this); } callback(){ console.log("执行我") } render(){ return (<div>子组件</div>); } } class Super extends Component { handleOnClick(){ // 可以调用子组件方法 this.Sub.callback(); } render(){ return ( <div> <div onClick={this.handleOnClick}>click</div> <Sub onRef={ node => this.Sub = node }></Sub> </div>) } }
Komponen fungsi, komponen Cangkuk
1. useImperativeHandle
- Kelebihan:
1. Kaedah penulisan yang ringkas dan mudah difahami.
2. Jika subkomponen mempunyai HOC bersarang, ia juga boleh menunjuk kepada subkomponen sebenar
- Kelemahan: 1. Perlu menyesuaikan atribut props 2. Perlu menyesuaikan kaedah terdedah
import React, { useImperativeHandle } from 'react'; import { observer } from 'mobx-react' const Parent = () => { let ChildRef = React.createRef(); function handleOnClick() { ChildRef.current.func(); } return ( <div> <button onClick={handleOnClick}>click</button> <Child onRef={ChildRef} /> </div> ); }; const Child = observer(props => { //用useImperativeHandle暴露一些外部ref能访问的属性 useImperativeHandle(props.onRef, () => { // 需要将暴露的接口返回出去 return { func: func, }; }); function func() { console.log('执行我'); } return <div>子组件</div>; }); export default Parent;
2. forwardRef
Gunakan forwardRef untuk membuang ref subkomponen ini Kaedah ini sebenarnya lebih sesuai untuk HOC tersuai. Tetapi masalahnya ialah denganRouter, connect, Form.create dan kaedah lain tidak boleh membuang ref Jika Child sendiri perlu menyarangkan kaedah ini, maka ia pada dasarnya tidak boleh digunakan bersama. forwardRef sendiri juga digunakan untuk membuang ref elemen kanak-kanak, seperti input dan elemen asli yang lain Ia tidak sesuai untuk melontar ref komponen kerana senario penggunaan komponen terlalu kompleks.import React, { useRef, useImperativeHandle } from 'react'; import ReactDOM from 'react-dom'; import { observer } from 'mobx-react' const FancyInput = React.forwardRef((props, ref) => { const inputRef = useRef(); useImperativeHandle(ref, () => ({ focus: () => { inputRef.current.focus(); } })); return <input ref={inputRef} type="text" /> }); const Sub = observer(FancyInput) const App = props => { const fancyInputRef = useRef(); return ( <div> <FancyInput ref={fancyInputRef} /> <button onClick={() => fancyInputRef.current.focus()} >父组件调用子组件的 focus</button> </div> ) } export default App;RingkasanTerdapat dua situasi apabila komponen induk memanggil fungsi subkomponen
- Subkomponen tidak mempunyai sarang HOC: ia adalah disyorkan untuk menggunakan ref untuk memanggil terus
- Dengan HOC bersarang: adalah disyorkan untuk menggunakan prop tersuai
Tutorial video Redis, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Cara memanggil kaedah komponen anak dalam komponen induk React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kelebihan React adalah fleksibiliti dan kecekapannya, yang dicerminkan dalam: 1) Reka bentuk berasaskan komponen meningkatkan kebolehgunaan semula kod; 2) Teknologi DOM Maya mengoptimumkan prestasi, terutamanya apabila mengendalikan banyak kemas kini data; 3) Ekosistem yang kaya menyediakan sejumlah besar perpustakaan dan alat pihak ketiga. Dengan memahami bagaimana React Works dan menggunakan contoh, anda boleh menguasai konsep terasnya dan amalan terbaik untuk membina antara muka pengguna yang cekap dan boleh dipelihara.

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, sesuai untuk aplikasi besar dan kompleks. 1. Inti React adalah komponen dan DOM maya, yang meningkatkan prestasi rendering UI. 2. Berbanding dengan Vue, React lebih fleksibel tetapi mempunyai lengkung pembelajaran yang curam, yang sesuai untuk projek besar. 3. Berbanding dengan sudut, bertindak balas lebih ringan, bergantung kepada ekologi komuniti, dan sesuai untuk projek yang memerlukan fleksibiliti.

React beroperasi di HTML melalui DOM maya. 1) React menggunakan sintaks JSX untuk menulis struktur seperti HTML. 2) Kemas kini UI Pengurusan Maya DOM, rendering yang cekap melalui algoritma yang berbeza. 3) Gunakan reactDom.render () untuk menjadikan komponen ke DOM sebenar. 4) Pengoptimuman dan amalan terbaik termasuk menggunakan react.memo dan komponen pemisahan untuk meningkatkan prestasi dan penyelenggaraan.

React digunakan secara meluas dalam e-dagang, media sosial dan visualisasi data. 1) Platform e-dagang Gunakan React untuk membina komponen keranjang belanja, gunakan USESTATE untuk menguruskan negeri, onclick untuk memproses acara, dan fungsi peta untuk membuat senarai. 2) Aplikasi media sosial berinteraksi dengan API melalui useeffect untuk memaparkan kandungan dinamik. 3) Visualisasi data menggunakan Perpustakaan React-Chartjs-2 untuk membuat carta, dan reka bentuk komponen mudah untuk membenamkan aplikasi.

Amalan terbaik untuk React Front-End Architecture termasuk: 1. 2. Pengurusan Negeri: Gunakan UseState, UserEducer, Contextapi atau Redux/Mobx untuk menguruskan Negeri untuk mengelakkan kerumitan yang berlebihan. 3. Pengoptimuman Prestasi: Mengoptimumkan prestasi melalui react.memo, usecallback, usememo dan kaedah lain untuk mencari titik keseimbangan. 4. Organisasi Kod dan Modularity: Susun kod mengikut modul berfungsi untuk meningkatkan kebolehpercayaan dan kebolehkerjaan. 5. Jaminan Ujian dan Kualiti: Ujian dengan Jest dan ReactTestingLibrary untuk memastikan kualiti dan kebolehpercayaan kod

Untuk mengintegrasikan React ke HTML, ikuti langkah -langkah ini: 1. Memperkenalkan React dan Reactdom dalam fail HTML. 2. Tentukan komponen React. 3. Mengadakan komponen ke dalam elemen HTML menggunakan ReactDom. Melalui langkah -langkah ini, halaman HTML statik dapat diubah menjadi pengalaman yang dinamik dan interaktif.

Populariti React termasuk pengoptimuman prestasi, penggunaan semula komponen dan ekosistem yang kaya. 1. Pengoptimuman prestasi mencapai kemas kini yang cekap melalui mekanisme maya dan mekanisme yang berbeza. 2. Penggunaan semula komponen mengurangkan kod pendua oleh komponen yang boleh diguna semula. 3. Ekosistem yang kaya dan aliran data sehala meningkatkan pengalaman pembangunan.

React adalah alat pilihan untuk membina antara muka pengguna yang dinamik dan interaktif. 1) Komponen dan JSX membuat UI berpecah dan menggunakan semula mudah. 2) Pengurusan negeri dilaksanakan melalui cangkuk UseState untuk mencetuskan kemas kini UI. 3) Mekanisme pemprosesan acara bertindak balas terhadap interaksi pengguna dan meningkatkan pengalaman pengguna.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna