Mewujudkan komponen terkawal dalam React melibatkan menguruskan keadaan elemen bentuk (seperti medan input, jatuh turun, dan kawasan teks) melalui keadaan komponen, dan bukannya membiarkan DOM mengurusnya. Berikut adalah panduan langkah demi langkah mengenai cara membuat komponen terkawal:
Sediakan Negeri: Pertama, anda perlu menubuhkan keadaan dalam komponen React anda untuk memegang nilai -nilai elemen bentuk. Ini boleh dilakukan dengan menggunakan cangkuk useState
untuk komponen fungsional atau objek this.state
untuk komponen kelas.
<code class="javascript">const [inputValue, setInputValue] = useState('');</code>
BIND NEGARA UNTUK NILAI: Seterusnya, anda mengikat keadaan ke atribut value
elemen borang. Untuk medan input, ini mungkin kelihatan seperti:
<code class="jsx"><input type="text" value="{inputValue}" onchange="{handleChange}"></code>
Mengendalikan perubahan: Anda perlu membuat fungsi untuk mengendalikan perubahan pada elemen borang. Fungsi ini mengemas kini keadaan apabila pengguna berinteraksi dengan elemen borang.
<code class="javascript">const handleChange = (event) => { setInputValue(event.target.value); };</code>
Dengan mengikuti langkah -langkah ini, anda secara berkesan membuat komponen terkawal di mana React bertanggungjawab terhadap keadaan borang, dan apa -apa kemas kini ke unsur -unsur bentuk mesti melalui pengurusan keadaan React.
Komponen terkawal dalam React menawarkan beberapa faedah yang meningkatkan pembangunan dan pengalaman pengguna:
Pengendalian Borang Pengendalian dengan komponen terkawal dalam React melibatkan penggunaan negeri untuk mengesan kesahihan elemen bentuk. Inilah cara anda boleh melakukannya:
Logik Pengesahan: Tulis fungsi yang memeriksa kesahihan input borang. Ini boleh menjadi pemeriksaan mudah untuk medan yang diperlukan, atau lebih banyak pengesahan kompleks seperti format e -mel, kekuatan kata laluan, dll.
<code class="javascript">const validateEmail = (email) => { const re = /^[a-zA-Z0-9._-] @[a-zA-Z0-9.-] \.[a-zA-Z]{2,4}$/; return re.test(String(email).toLowerCase()); };</code>
Nyatakan untuk Pengesahan: Tambah pembolehubah negeri untuk mengesan sama ada bidang sah dan mungkin memegang mesej ralat.
<code class="javascript">const [email, setEmail] = useState(''); const [emailError, setEmailError] = useState('');</code>
Kemas kini Pengesahan pada Perubahan: Dalam fungsi handleChange
anda, hubungi fungsi pengesahan anda dan kemas kini keadaan pengesahan dengan sewajarnya.
<code class="javascript">const handleEmailChange = (event) => { const newEmail = event.target.value; setEmail(newEmail); if (!validateEmail(newEmail)) { setEmailError('Please enter a valid email address'); } else { setEmailError(''); } };</code>
Maklum Balas Pengesahan Paparan: Gunakan keadaan pengesahan untuk memaparkan mesej ralat atau penunjuk kejayaan kepada pengguna dalam masa nyata.
<code class="jsx"><input type="email" value="{email}" onchange="{handleEmailChange}"> {emailError && <div style="{{color:">{emailError}</div>}</code>
Penyerahan Borang: Apabila borang dikemukakan, anda boleh menyemak keadaan pengesahan untuk memutuskan sama ada untuk meneruskan penyerahan atau menunjukkan kesilapan.
<code class="javascript">const handleSubmit = (event) => { event.preventDefault(); if (!emailError) { // Proceed with form submission } else { // Handle form submission errors } };</code>
Pendekatan ini membolehkan anda membuat pengalaman pengguna yang lancar di mana pengesahan berlaku dalam masa nyata, membantu pengguna membetulkan kesilapan ketika mereka pergi.
Perbezaan utama antara komponen terkawal dan tidak terkawal dalam React terletak pada bagaimana mereka mengurus dan mengendalikan data bentuk:
Pengurusan Negeri:
Aliran data:
Kebolehprediksi dan kawalan:
Contoh Penggunaan:
Ringkasnya, komponen terkawal menawarkan lebih banyak kawalan dan sesuai untuk interaksi bentuk yang kompleks, manakala komponen yang tidak terkawal adalah lebih mudah dan lebih sesuai untuk kes penggunaan asas.
Atas ialah kandungan terperinci Bagaimana anda membuat komponen terkawal dalam React?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!