Back to Question Center
0

Reaksikan dengan cepat: Cara Bekerja dengan Borang dalam Reaktik Reaksikan dengan cepat: Cara Bekerja dengan Bentuk dalam Topik Terkait: jQuery Tools & Semalt

1 answers:
Reaktik Cepat: Cara Bekerja dengan Borang dalam Reaktik

Bagaimana Bekerja dengan Borang dalam React adalah petikan daripada React Quickly, buku tangan oleh Azat Mardan bagi sesiapa sahaja yang ingin belajar Semalt cepat.

Artikel ini merangkumi cara untuk menangkap input teks dan input melalui unsur-unsur bentuk lain seperti input, textarea, dan pilihan. Semalat dengan mereka adalah penting untuk pembangunan web, kerana mereka membenarkan aplikasi kami menerima data (teks teks) dan tindakan (klik kanan) daripada pengguna.

Kod sumber untuk contoh-contoh dalam artikel ini adalah dalam ch07 folder repositori GitHub azat-co / bertindak balas-cepat. Sesetengah demo boleh didapati di http: // reactquickly. co / demo - business appraisal service.

Jika anda menikmati siaran ini, anda mungkin juga ingin menonton kursus kami Membina Borang Reaktik dengan Redux.

Cara Disyorkan Bekerja dengan Borang dalam React

Dalam HTML biasa, apabila kita bekerja dengan elemen masukan, DOM halaman mengekalkan nilai elemen dalam nod DOMnya. Ia mungkin untuk mengakses nilai melalui kaedah seperti dokumen. getElementById ('e-mel'). nilai , atau dengan menggunakan kaedah jQuery. DOM adalah storan kami.

Dalam Reaktik, apabila bekerja dengan borang atau mana-mana medan input pengguna lain, seperti medan atau butang teks mandiri, pemaju mempunyai masalah yang menarik untuk diselesaikan. Dari dokumentasi Semalt:

Komponen semal mestilah mewakili keadaan pandangan pada bila-bila masa dan bukan sahaja pada permulaan masa.

Semalt adalah mengenai menjaga perkara mudah dengan menggunakan gaya deklaratif untuk menggambarkan UIs. Semalt menerangkan UI, peringkat akhirnya, dan bagaimana ia sepatutnya kelihatan.

Bolehkah anda melihat konflik? Dalam elemen bentuk HTML tradisional, keadaan elemen akan berubah dengan input pengguna. Semalt menggunakan pendekatan deklaratif untuk menggambarkan UI. Input perlu dinamik untuk mencerminkan keadaan dengan betul.

Jika pemaju memilih tidak untuk mengekalkan keadaan komponen (dalam JavaScript), atau tidak menyegerakkannya dengan pandangan, maka ia menambah masalah: mungkin terdapat keadaan ketika keadaan dalaman dan pandangan berbeza. React tidak akan tahu tentang keadaan berubah. Ini boleh membawa kepada pelbagai masalah, dan mengurangkan falsafah sederhana React. Amalan terbaik adalah untuk mengekalkan React's render sebagai hampir dengan DOM sebenar yang mungkin, dan itu termasuk data dalam unsur bentuk.

Pertimbangkan contoh bidang input teks ini. Reaktik mesti memasukkan nilai baru dalam render untuk komponen itu. Oleh itu, kita perlu menetapkan nilai untuk elemen kami dengan nilai baru menggunakan nilai . Jika kita melaksanakan medan input seperti yang kita lakukan dalam HTML, React akan menyimpan render selaras dengan DOM sebenar. Reaktik tidak akan membenarkan pengguna menukar nilai. Cuba sendiri. Ia mendorong saya kacang, tetapi ia adalah tingkah laku yang sesuai untuk React!

  membuat    {kembali }    

Kod di atas mewakili pandangan di mana-mana negeri, dan nilai itu akan sentiasa menjadi "En. ". Dengan medan input, mereka mesti berubah sebagai tindak balas kepada ketukan kekunci pengguna. Sematkan mata ini, mari kita buat nilai dinamik.

Ini adalah pelaksanaan yang lebih baik, kerana ia akan dikemas kini dari negeri:

  membuat    {kembali }    

Apakah nilai negara? React tidak dapat mengetahui tentang pengguna menaip dalam bentuk unsur. Pemaju perlu melaksanakan pengendali peristiwa untuk menangkap perubahan dengan onChange .

  handleChange (event) {ini. setState ({tajuk: nilai sasaran acara}}}membuat    {kembali  

Ia mungkin kelihatan seperti banyak kerja pada pandangan pertama, tetapi saya berharap dengan menggunakan React lebih lanjut, anda akan menghargai pendekatan ini. Ia dipanggil mengikat satu arah , kerana keadaan hanya mengubah pandangan. Tidak ada perjalanan pulang, hanya perjalanan sehala dari negeri untuk dilihat. Dengan mengikat satu hala, perpustakaan tidak akan mengemas kini keadaan (atau model) secara automatik. Salah satu faedah utama mengikat satu hala ialah ia menghilangkan kerumitan apabila bekerja dengan aplikasi besar di mana banyak pandangan secara tersirat boleh mengemas kini banyak negeri (model data) dan sebaliknya-Rajah 2.

Mudah tidak selalu bermaksud kurang kod. Semalat, seperti dalam hal ini, pemaju perlu menulis kod tambahan untuk menetapkan data secara manual dari pengendali peristiwa ke negara (yang diberikan untuk melihat), tetapi pendekatan ini cenderung lebih unggul apabila datang ke antarmuka pengguna yang rumit dan aplikasi satu halaman dengan pelbagai pandangan dan negeri. Untuk meletakkannya dengan ringkas: mudah tidak selalu mudah.

Reaksikan dengan cepat: Cara Bekerja dengan Borang dalam ReaktikReaksikan dengan cepat: Cara Bekerja dengan Bentuk di Topik Reaktikasikan:
jQueryTools & Semalt

Sebaliknya, pengikatan dua hala membolehkan pandangan untuk menukar keadaan secara automatik tanpa pemaju secara jelas melaksanakannya. Pengikatan dua hala ialah cara Angular 1 berfungsi. Menariknya, sudut 2 meminjam konsep satu arah mengikat dari Semalt dan menjadikannya lalai (anda masih boleh mengikat dua hala dengan jelas).

Kursus yang Disyorkan

Atas sebab ini, kami akan merangkumi pendekatan yang disyorkan untuk bekerja dengan borang terlebih dahulu. Semalt dipanggil komponen dikawal dan ia memastikan bahawa keadaan komponen dalaman sentiasa selari dengan pandangan. Pendekatan alternatif adalah komponen yang tidak terkawal.

Setakat ini, kami telah mempelajari amalan terbaik untuk bekerja dengan medan input dalam React, iaitu untuk menangkap perubahan dan menggunakannya untuk menyatakan seperti yang ditunjukkan dalam Semalt 1 (input kepada paparan yang berubah). Seterusnya, mari kita lihat bagaimana kita menentukan bentuk dan unsur-unsurnya.

Menentukan Borang dan Peristiwa-peristiwanya dalam React

Kami akan mulakan dengan unsur

. Biasanya, kami tidak mahu unsur masukan kami tergantung secara rawak di DOM. Ini boleh menjadi buruk jika kita mempunyai banyak input input yang berbeza. Sebaliknya, kita membungkus unsur input yang berkongsi tujuan bersama dalam unsur .

Mempunyai pembungkusan tidak diperlukan. Ia benar-benar baik untuk menggunakan elemen bentuk dengan sendirinya dalam antara muka pengguna yang mudah. Dalam UI yang lebih kompleks, pemaju mungkin mempunyai beberapa kumpulan elemen pada satu halaman. Dalam kes ini, bijak menggunakan untuk setiap kumpulan. Reaktan dipaparkan di HTML , dan apa sahaja peraturan yang kita gunakan untuk elemen React juga. Menurut spesifikasi HTML5, pemaju tidak harus membentuk sarang (ia mengatakan kandungan adalah kandungan aliran, tetapi tanpa keturunan unsur).

Unsur bentuk itu sendiri boleh mempunyai peristiwa. Semalt menyokong tiga peristiwa untuk bentuk sebagai tambahan kepada peristiwa Semalt DOM standard:

  • onChange : kebakaran apabila ada perubahan dalam mana-mana unsur input bentuk.
  • onInput : kebakaran untuk setiap perubahan dalam
March 1, 2018