React Kemas kini baharu
Minggu ini, kita akan bercakap tentang kemas kini dan cangkuk React 19 baharu. Setelah melalui dan menggunakan beberapa kemas kini baharu ini, saya hanya boleh bersetuju bahawa ia telah memudahkan beberapa aktiviti ketat yang dilalui pembangun semasa membina apl, terutamanya aplikasi berkaitan borang interaktif.
Sertai saya dan izinkan kami meneroka beberapa kemas kini baharu ini.
React Compiler: React compiler memilih kod React anda, menterjemahkannya ke dalam kod JavaScript untuk penyemak imbas dan mengurus keadaan komponen atau Antara Muka Pengguna anda. Tindakan tunggal ini membantu mengoptimumkan prestasi aplikasi anda.
Jika anda biasa dengan cangkuk useMemo, cangkuk useCallback dan React.Memo, anda akan faham bahawa ia membantu menghafal (menyimpan nilai atau fungsi untuk kegunaan masa hadapan) komponen anda, jadi mereka tidak perlu mengulang- render apabila tiada perubahan keadaan. Apabila terdapat perubahan dalam keadaan, React memaparkan semula komponen yang dipersoalkan dan anak-anaknya, dan apabila tiada perubahan dalam kod anda, komponen itu kekal seperti mengekalkan memori, nilai dan keadaan sebelumnya dalam komponen atau cangkuk untuk masa hadapan kegunaan; dengan itu mengoptimumkan prestasi komponen anda. Inilah yang dilakukan oleh React Compiler secara automatik, tanpa perlu memanggil mana-mana cangkuk yang disebutkan di atas secara manual.
Tindakan Bentuk: Salah satu kelebihan terbesar menggunakan React ialah pengurusan dan mutasi keadaan, dan ini kebanyakannya berlaku apabila kita menggunakan elemen. Borang membantu kami mencipta dan mengendalikan interaktiviti pengguna dengan lebih berkesan.
Dengan tindakan borang, anda tidak memerlukan pengendali acara seperti onSubmit dan onChange untuk melaksanakan mutasi langsung data, sebaliknya kami boleh lulus tindakan prop kepada elemen
yang menerima fungsi yang mencetuskan acara.const myFunction = async (formData) => { const [name, setName] = useState("") const updatedName = await nameChange(formData.get("name")) setName(updatedName) } <form action={myFunction}> <input type="name" name="name" _// this is important to be able to get our data //_ /> <button type="submit">Submit</button> </form>
Dengan pendekatan ini, kami tidak memerlukan aplikasi useState untuk memutasi data melalui event.target.value, Sebaliknya, dalam myFunction kita boleh dapatkan data bermutasi melalui hujah.
Ini bermakna daripada elemen dalam bentuk kita, kita perlu menetapkan atribut nama. Menggunakan kaedah ini bermakna kami membenarkan React mengendalikan borang itu sendiri melalui Native React form Object dan bukannya menukar keadaan secara manual melalui pengendali acara.
Komponen Pelayan: React 19 membenarkan komponen dipaparkan pada pelayan sebelum digabungkan, dalam persekitaran yang berasingan daripada aplikasi klien atau persediaan pelayan SSR. Komponen Pelayan tidak sama dengan SSR (penyediaan sisi pelayan), tetapi persekitaran pelayan yang berasingan dalam Komponen Pelayan Bertindak balas.
Ciri ini membolehkan komponen pra-memapar sebelum masa, dengan itu menghasilkan paparan kandungan yang pantas dan masa muat yang lebih baik.
Metadata: React 19 membenarkan metadata yang fleksibel. Pembangun boleh mengurus tajuk, penerangan dan tag meta komponen individu yang lain melalui komponen DocumentHead. Ini akan membantu meningkatkan SEO (Pengoptimuman Enjin Carian).
Const AboutUs = () => { return ( <> <title>Learn more about our company</title> <meta name="AboutUs" description="You can find us on ..." /> // content </> ); }
React 19 mempunyai siri cangkuk baharu, beberapa, baharu, yang lain penambahbaikan kepada cangkuk sedia ada. Mari kita bincangkan tentang mereka di bawah.
Penggunaan() cangkuk: Cangkuk guna ialah API percubaan yang boleh digunakan terus untuk membaca nilai Janji atau konteks dalam komponen atau cangkuk (yang merupakan satu-satunya had yang diketahui buat masa ini ).
Cangkuk penggunaan adalah sangat serba boleh dan juga boleh digunakan sebagai ganti useEffect, kerana Ia boleh digunakan untuk pengambilan data tak segerak. Ini membantu untuk
mencapai blok kod yang lebih kemas dan padat.
Kaveat: Ia bukan pengganti useEffect kerana ia masih mempunyai hadnya sendiri yang _useEffect _akan dilaksanakan tanpa had.
import {use} from "react" const fetchData = async () => { const response = await fetch("https://........"); return response.json() } const userData = () => { const user = use(fetchData()); return ( <div className='username'>{user.name}</div> ); }
useActionState(): Ini ialah cangkuk baharu yang membantu mengurus perubahan keadaan. Ia membantu mengurus keadaan belum selesai, pengendalian ralat dan akhir
kemas kini negeri. useActionState _berfungsi seperti _useReduce _di mana ia menerima dua(2) parameter: fungsi yang akan dipanggil apabila borang diserahkan dan _initialState dan ia mengembalikan tatasusunan yang mengandungi tiga(3) nilai: keadaan, yang kini menjadi keadaan semasa jika terdapat mutasi keadaan, tindakan baharu(formAction) yang boleh diluluskan sebagai prop dalam komponen borang kami untuk memanggil tindakan pelayan, dan _isPending _yang mengembalikan _boolean _value jika atau tidak borang diserahkan.
import { useActionState } from "react"; async function incrementFunction(initialState, formData) { return initialState + 1; } function StatefulForm({}) { const [state, formAction, isPending] = useActionState(incrementFunction, 0); console.log(state); return ( <form> <button formAction={formAction}>{state}</button> </form> ) }
From this example, the incrementFunction adds 1 to the state every time the button is clicked. The initialState being 0, and then increases to 1 at the first click of the button, thereby changing the state to 1, and for every other click on the button adds 1 to the last state of the component.
useOptimistic() hook:
This is a new hook that allows users to see the outcome of their action even before the pages load completely. The pages are optimistically rendered to the user even when the server is still in its data fetching mode.
With the hope that data fetching will be successful, React displays the intended result to the client, and when data fetching fails, React reverts to the value of the previous state in order not to display incorrect data. This singular action helps in a seamless and fast display of data thereby improving user experience.
useFormStatus():
As the name implies, useFormStatus gives us the status of our form or form fields. This hook does not take in any parameter, but it sure returns 4 objects:
pending: This returns a boolean value: true or false. It returns true when the form is submitting, and false when the form is submitted.
data: When the form is successfully submitted, we can get the information of the user or object from the form field like this:
(formData.get("name")) (formData.get("address"))
method: The default method of a form is GET, unless stated otherwise. We can get the method of our form with .method. When we are submitting a form, a string method property should be specified as a POST.
action: This is a reference to the function that will be passed to the action prop in our element.
The useFormStatus must always be called from a element or a component that is rendered inside a .
There's quite a few more updates that I can't really write about, so you don't get bored having to read so much. You can click on the React Docs Website to check out some of the other updates.
I hope you had a great time learning with me.
Do well to follow me if you enjoyed my articles.
Thanks, and have a great week ahead my friends.
Atas ialah kandungan terperinci React Kemas kini baharu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.
