Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Apakah komponen dalam React?

Apakah komponen dalam React?

Emily Anne Brown
Lepaskan: 2025-03-19 13:31:31
asal
225 orang telah melayarinya

Apakah komponen dalam React?

Komponen adalah blok bangunan asas bagi sebarang aplikasi React. Mereka boleh digunakan semula kod yang mewakili sebahagian daripada antara muka pengguna. Setiap komponen boleh dianggap sebagai modul mandiri yang menguruskan negara sendiri dan menjadikan UI sendiri. Komponen dalam React boleh sama ada berfungsi atau berasaskan kelas, walaupun dengan kemunculan cangkuk, komponen berfungsi lebih biasa digunakan kerana kesederhanaan dan kebolehbacaan mereka.

Komponen boleh menerima data melalui prop, yang merupakan input kepada komponen yang boleh menjejaskan bagaimana ia diberikan. Mereka juga boleh mengekalkan keadaan dalaman mereka sendiri, membolehkan mereka bertindak balas terhadap interaksi pengguna dan mengemas kini UI dengan sewajarnya. Komponen React boleh disusun bersama untuk membina UI yang kompleks dan interaktif, menjadikannya alat yang berkuasa untuk membina aplikasi web moden.

Apakah perbezaan antara komponen fungsional dan kelas dalam React?

Komponen fungsional dan kelas dalam React berfungsi dengan tujuan yang sama untuk mengemas dan menjadikan unsur -unsur UI, tetapi mereka berbeza dalam sintaks dan keupayaan, terutamanya dalam versi awal React.

Komponen Fungsian:

  • Pada asalnya, komponen berfungsi lebih mudah dan hanya boleh menerima prop dan mengembalikan JSX.
  • Mereka tidak mempunyai kaedah negeri atau kitaran hayat mereka sendiri.
  • Dengan pengenalan cangkuk dalam React 16.8, komponen berfungsi kini boleh menggunakan ciri -ciri keadaan dan kitaran hayat, menjadikannya lebih kuat sebagai komponen kelas tetapi dengan kod boilerplate yang kurang.
  • Komponen fungsional ditakrifkan menggunakan fungsi JavaScript biasa atau fungsi anak panah.

Contoh komponen fungsional yang mudah:

 <code class="jsx">function Welcome(props) { return <h1>Hello, {props.name}</h1>; }</code>
Salin selepas log masuk

Komponen Kelas:

  • Komponen kelas adalah kelas ES6 yang meluas dari React.Component .
  • Mereka mempunyai sintaks yang lebih kompleks yang termasuk pembina untuk memulakan kaedah keadaan dan mengikat.
  • Komponen kelas boleh menggunakan kaedah kitaran hayat seperti componentDidMount , componentDidUpdate , dan componentWillUnmount .
  • Sebelum cangkuk, komponen kelas adalah satu -satunya cara untuk menguruskan kesan negeri dan sampingan dalam komponen.

Contoh komponen kelas yang mudah:

 <code class="jsx">class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }</code>
Salin selepas log masuk

Dalam perkembangan reaksi moden, komponen berfungsi dengan cangkuk lebih disukai kerana kesederhanaan mereka dan keupayaan untuk menggunakan logik yang mudah digunakan semula antara komponen.

Bagaimana anda menyampaikan data antara komponen dalam React?

Lulus data antara komponen dalam React dapat dicapai dalam beberapa cara, bergantung kepada hubungan antara komponen (komponen ibu bapa, anak-anak, atau adik beradik).

1. Ibu bapa kepada Anak: Props
Kaedah yang paling biasa untuk lulus data dari ibu bapa ke komponen kanak -kanak adalah dengan menggunakan prop. Props adalah data baca sahaja yang diluluskan dari komponen induk kepada komponen anaknya.

Contoh:

 <code class="jsx">function Parent() { const name = 'John'; return <child name="{name}"></child>; } function Child(props) { return <p>Hello, {props.name}!</p>; }</code>
Salin selepas log masuk

2. Anak kepada Ibu Bapa: Panggilan balik
Untuk lulus data dari kanak -kanak ke komponen induk, anda boleh lulus fungsi panggil balik sebagai prop kepada komponen kanak -kanak. Komponen kanak -kanak kemudian boleh memanggil fungsi ini, lulus data yang diperlukan kembali kepada ibu bapa.

Contoh:

 <code class="jsx">function Parent() { const handleNameChange = (newName) => { console.log(newName); }; return <child onnamechange="{handleNameChange}"></child>; } function Child(props) { const name = 'Jane'; return <button onclick="{()"> props.onNameChange(name)}>Send Name</button>; }</code>
Salin selepas log masuk

3. Antara adik beradik: mengangkat keadaan
Sekiranya anda perlu berkongsi data antara komponen saudara, anda boleh mengangkat keadaan sehingga komponen ibu bapa yang paling dekat. Komponen induk kemudian boleh menguruskan negeri dan menyampaikannya sebagai alat untuk komponen kanak -kanak.

Contoh:

 <code class="jsx">function Parent() { const [name, setName] = useState(''); const handleNameChange = (newName) => { setName(newName); }; return ( <div> <child1 name="{name}" onnamechange="{handleNameChange}"></child1> <child2 name="{name}"></child2> </div> ); } function Child1(props) { const name = 'John'; return <button onclick="{()"> props.onNameChange(name)}>Send Name</button>; } function Child2(props) { return <p>Hello, {props.name}!</p>; }</code>
Salin selepas log masuk

Apakah beberapa amalan terbaik untuk menguruskan negeri dalam komponen React?

Menguruskan keadaan dengan berkesan adalah penting untuk membina aplikasi reaksi yang mantap dan cekap. Berikut adalah beberapa amalan terbaik untuk pengurusan negeri dalam komponen React:

1. Gunakan cangkuk useState untuk Negeri Tempatan:
Untuk komponen berfungsi, gunakan cangkuk useState untuk menguruskan negara tempatan. Pendekatan ini menjadikan komponen anda mudah dan memberi tumpuan kepada logik UI mereka.

Contoh:

 <code class="jsx">function Counter() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onclick="{()"> setCount(count 1)}>Click me</button> </div> ); }</code>
Salin selepas log masuk

2. Angkat keadaan apabila diperlukan:
Jika pelbagai komponen perlu berkongsi keadaan yang sama, angkat negara ke ibu bapa yang paling dekat. Ini membantu mengelakkan penggerudian prop dan mengekalkan pembersih hierarki komponen anda.

3. Gunakan API Konteks untuk Negeri Global:
Untuk keadaan yang perlu diakses oleh banyak komponen sepanjang aplikasi anda, pertimbangkan untuk menggunakan API konteks. Ia menyediakan cara untuk menyampaikan data melalui pokok komponen tanpa perlu lulus props secara manual di setiap peringkat.

Contoh:

 <code class="jsx">const ThemeContext = React.createContext('light'); function App() { return ( <themecontext.provider value="dark"> <toolbar></toolbar> </themecontext.provider> ); } function Toolbar() { return ( <div> <themedbutton></themedbutton> </div> ); } function ThemedButton() { const theme = useContext(ThemeContext); return <button style="{{" background: theme="==" :>I am styled by theme context!</button>; }</code>
Salin selepas log masuk

4. Gunakan Redux atau perpustakaan pengurusan negeri lain untuk aplikasi yang kompleks:
Untuk aplikasi yang lebih besar dengan keperluan pengurusan negeri yang kompleks, pertimbangkan untuk menggunakan perpustakaan seperti Redux. Redux menyediakan kedai berpusat untuk keadaan aplikasi anda dan satu set peraturan yang boleh diramal untuk mengemas kini keadaan itu.

5. Pastikan kemas kini keadaan tidak berubah:
Apabila mengemas kini keadaan, sentiasa mengembalikan objek negeri baru dan bukannya bermutasi yang sedia ada. Ini membantu bertindak balas dengan cekap membuat komponen dan meningkatkan prestasi.

Contoh:

 <code class="jsx">// Incorrect: Mutating state const [user, setUser] = useState({ name: 'John', age: 30 }); user.age = 31; // Don't do this! // Correct: Returning a new state object setUser(prevUser => ({ ...prevUser, age: 31 }));</code>
Salin selepas log masuk

6. Gunakan Memoisasi untuk mengoptimumkan prestasi:
Gunakan cangkuk useMemo dan useCallback untuk memoize pengiraan mahal dan fungsi panggil balik, menghalang komponen-komponen yang tidak perlu.

Contoh:

 <code class="jsx">const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); const memoizedCallback = useCallback(() => doSomething(a, b), [a, b]);</code>
Salin selepas log masuk

Dengan mengikuti amalan terbaik ini, anda dapat mengurus keadaan secara berkesan dalam komponen React anda, menghasilkan aplikasi yang lebih banyak dan berpengalaman.

Atas ialah kandungan terperinci Apakah komponen dalam React?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan