Bereaksi Panduan Animasi Dasar

Penulis catatan, yang kami terbitkan terjemahan hari ini, mengatakan bahwa ada kesenjangan antara menggunakan React untuk mengembangkan antarmuka pengguna dan kebutuhan untuk mengetahui bagaimana React sebenarnya bekerja. Banyak orang yang menggunakan Bereaksi dalam praktik tidak tahu apa yang terjadi di dalam perut perpustakaan ini. Di sini, dalam bentuk animasi, kami akan mempertimbangkan beberapa proses utama yang terjadi dalam Bereaksi selama pembentukan antarmuka pengguna.



Meluncurkan Aplikasi Bereaksi


Perlu dicatat bahwa untuk membuat aplikasi Bereaksi, Anda mungkin mungkin tidak tahu tentang mekanisme internal Bereaksi. Tetapi saya memutuskan untuk menyiapkan materi ini untuk semua orang yang, dengan alasan apa pun, ingin lebih memahami pekerjaan Bereaksi. Proses yang dijelaskan disajikan dalam bentuk animasi. Saya harap ini membantu memperjelas analisis mereka.

Bereaksi, ketika Anda pertama kali memulai aplikasi, secara otomatis me-mount kelas App ke wadah root aplikasi.


Mount Pertama <Aplikasi />

Virtual DOM dan algoritma perbandingan


Selama pekerjaan subsistem Bereaksi yang mengimplementasikan Algoritma Diffing, pencarian dilakukan untuk perbedaan antara dua DOM virtual (Model Objek Dokumen Virtual, model dokumen virtual). Perlambat untuk sementara waktu. Dua DOM virtual? Tampaknya hanya ada satu DOM virtual di Bereaksi ... Mari kita cari tahu. Bereaksi membandingkan DOM virtual sebelumnya dengan yang baru. Memperbarui DOM berbasis browser dilakukan hanya jika, ketika membandingkan DOM virtual, perbedaan di antara mereka terungkap.


Animasi abstrak dari algoritma perbandingan Bereaksi. Jika ditemukan bahwa dua pohon DOM virtual berbeda, DOM nyata di browser dicocokkan dengan pohon DOM virtual terbaru

Pertimbangkan apa yang terjadi pada animasi di atas.

  • Pada acara click , panggilan API.tweet() dengan data permintaan POST yang berisi message .
  • Menanggapi permintaan, payload dikembalikan, data ini dikirim ke callback (event) => { … } .
  • Jika data yang dikembalikan ke payload harus menyebabkan perubahan props , perbandingan pohon DOM virtual dilakukan.
  • Jika pohon berubah menjadi berbeda, pohon terbaru dikirim ke browser.
  • Kemudian DOM virtual baru menjadi lama, dan kami mengharapkan acara baru.

Bereaksi Komponen


Komponen Bereaksi hanyalah objek JavaScript. React menciptakan DOM virtualnya sendiri, yang merupakan tampilan hierarki dari seluruh struktur antarmuka pengguna. Bereaksi menyimpan pohon DOM virtual dalam memori. Sebelum apa yang ada di DOM virtual ditampilkan secara fisik di jendela browser, React dapat melakukan banyak operasi untuk menambah, memperbarui, dan menghapus item dari DOM virtual.

Jangan gunakan metode komponen render() untuk apa pun yang tidak terkait dengan rendering elemen antarmuka pengguna. Jika Anda perlu mengubah status atau properti komponen, gunakan metode standar siklus hidup komponen Bereaksi.

Metode render () harus selalu tetap menjadi fungsi murni.


Metode render() memperbarui DOM komponen virtual. Jika pohon DOM virtual baru berbeda dari pohon yang ditampilkan sebelumnya, maka Bereaksi, selain memperbarui DOM virtual, juga akan memperbarui DOM browser nyata. Pengembang tidak harus secara langsung memperbarui DOM browser secara langsung. Aturan ini berlaku untuk setiap tempat dalam kode aplikasi Bereaksi. Ini sangat penting ketika diterapkan pada fungsi render() .


Jangan mencemari metode render () dengan pemanggilan fungsi yang entah bagaimana memperbarui DOM secara langsung

Dalam metode render() , Anda tidak boleh mengubah status komponen (bahkan menggunakan setState ), dan melakukan permintaan HTTP. Jangan mengakses jQuery dari metode ini, jangan mengeksekusi permintaan untuk memuat data tertentu. Faktanya adalah bahwa metode render() perlu dipertahankan dalam keadaan di mana ia akan menjadi fungsi murni. Metode ini selalu disebut pada tahap akhir dari mekanisme komponen. Dalam pelaksanaannya, Anda hanya perlu memperbarui antarmuka pengguna. Diasumsikan bahwa semua pembaruan untuk DOM virtual telah selesai.

Acara Siklus Hidup Komponen


Ketika komponen pertama kali dipasang di DOM, Bereaksi meningkatkan componentWillMount siklus hidup componentWillMount . Setelah komponen virtual ditampilkan untuk pertama kalinya (yaitu, ia dipasang untuk pertama kali di DOM nyata peramban), acara lain disebut - componentDidMount .

Diharapkan bahwa sebagian besar komponen logika yang dipanggil selama semua tahap aplikasi akan dijelaskan secara tepat dalam metode siklus hidup mereka.

Ringkasan


Banyak pengembang Bereaksi saat ini menggunakan komponen fungsional dan pengait alih-alih komponen berdasarkan kelas dan metode siklus hidupnya. Metode siklus hidup bahkan dianggap tidak aman. Jika Anda yakin dokumentasi Bereaksi, maka mungkin metode ini akan usang di masa depan. Itulah sebabnya penulis menganggap artikel ini sebagai deskripsi teknologi, beberapa di antaranya mungkin segera terlupakan. Namun dia, meskipun demikian, berharap bahwa materi ini akan bermanfaat bagi mereka yang baru mulai berkenalan dengan React, dan mereka yang tertarik dengan sejarah pengembangan teknologi pengembangan web.

Pembaca yang budiman! Apakah Anda menggunakan React hooks?

Source: https://habr.com/ru/post/id463069/


All Articles