Blog ini pada asalnya disiarkan di Medium
Hai, rakan-rakan peminat React! Saya baru-baru ini menyelami dokumentasi React dan ingin berkongsi pembelajaran saya dengan anda. Ini adalah panduan minima ringkas untuk mereka yang ingin membina asas yang kukuh dalam React. Mari kita pecahkan konsep teras dengan penerangan ringkas dan coretan kod.
Ini akan menjadi cerita yang agak panjang, tetapi sila teruskan untuk memahami semua konsep teras React sekaligus. Anda akan mendapati berfaedah untuk meringkas dan menyemak semula konsep ini untuk kemajuan selanjutnya.
Jadual Kandungan
- Berfikir dalam Reaksi
- Komponen dan JSX
- Prop
- Pemarahan Bersyarat
- Senarai Rendering
- Komponen Tulen
- Pokok UI
- Interaktiviti dan Pengendali Acara
- Negeri
- Komponen Terkawal
- Komponen Tidak Terkawal
- Ruj
- Mencegah Gelagat Lalai
- Penyebaran Acara
- Mengurus Negeri Kompleks
- Konteks
- Kesan Sampingan
- Amalan terbaik penggunaanEffect
- Peraturan Reaksi
- Cangkuk Tersuai
- Peraturan Cangkuk
Berfikir dalam React
React adalah tentang memecahkan UI anda kepada komponen yang boleh diguna semula. Apabila membina apl React, mulakan dengan:
- Memecahkan UI kepada hierarki komponen
- Membina versi statik tanpa interaktiviti
- Mengenal pasti perwakilan minimum keadaan UI
- Menentukan di mana negeri anda patut tinggal
- Menambah aliran data songsang
Rujukan: https://react.dev/learn/thinking-in-react
Komponen dan JSX
Komponen ialah blok bangunan aplikasi React. Ia boleh berfungsi atau berasaskan kelas (kuno, tidak disyorkan). JSX ialah sambungan sintaks yang membolehkan anda menulis kod seperti HTML dalam JavaScript anda.
function Welcome(props) { return <h1 id="Hello-props-name">Hello, {props.name}</h1>; }
Rujukan:
- Komponen: https://react.dev/learn/your-first-component
- JSX: https://react.dev/learn/writing-markup-with-jsx
Props
Props ialah cara kami menghantar data daripada komponen induk kepada anak. Ia adalah baca sahaja dan membantu memastikan komponen kami tulen.
function Greeting(props) { return <p>Welcome, {props.username}!</p>; } // Usage <greeting username="Alice"></greeting>
Rujukan: https://react.dev/learn/passing-props-to-a-component
Rendering Bersyarat
React membolehkan anda membuat komponen atau elemen secara bersyarat berdasarkan syarat tertentu.
function UserGreeting(props) { return props.isLoggedIn ? <h1 id="Welcome-back">Welcome back!</h1> : <h1 id="Please-sign-in">Please sign in.</h1>; }
Rujukan: https://react.dev/learn/conditional-rendering
Senarai Rendering
Gunakan fungsi map() untuk memaparkan senarai elemen dalam React. Jangan lupa tambahkan prop kunci unik pada setiap item.
function FruitList(props) { const fruits = props.fruits; return (
-
{fruits.map((fruit) => (
- {fruit.name} ))}
Rujukan: https://react.dev/learn/rendering-lists
Komponen Tulen
Komponen tulen sentiasa menghasilkan output yang sama untuk prop dan keadaan yang sama. Ia boleh diramal dan lebih mudah untuk diuji.
function Welcome(props) { return <h1 id="Hello-props-name">Hello, {props.name}</h1>; }
Rujukan: https://react.dev/learn/keeping-components-pure
Pokok UI
React membina dan mengekalkan perwakilan dalaman UI anda yang dipanggil DOM maya. Ini membolehkan React mengemas kini hanya bahagian DOM sebenar yang telah berubah dengan cekap.
Rujukan: https://react.dev/learn/understanding-your-ui-as-a-tree
Interaktiviti dan Pengendali Acara
React menggunakan peristiwa sintetik untuk mengendalikan interaksi pengguna secara konsisten merentas penyemak imbas yang berbeza.
function Greeting(props) { return <p>Welcome, {props.username}!</p>; } // Usage <greeting username="Alice"></greeting>
Rujukan: https://react.dev/learn/responding-to-events
negeri
Keadaan digunakan untuk data yang berubah dari semasa ke semasa dalam komponen. Gunakan cangkuk useState untuk menambah keadaan pada komponen berfungsi.
function UserGreeting(props) { return props.isLoggedIn ? <h1 id="Welcome-back">Welcome back!</h1> : <h1 id="Please-sign-in">Please sign in.</h1>; }
Rujukan: https://react.dev/learn/state-a-components-memory
Komponen Terkawal
Komponen terkawal mempunyai keadaannya dikawal oleh React.
function FruitList(props) { const fruits = props.fruits; return (
-
{fruits.map((fruit) => (
- {fruit.name} ))}
Komponen Tidak Terkawal
Komponen tidak terkawal mengurus keadaannya terus pada DOM.
function PureComponent(props) { return <div>{props.value}</div>; }
Ruj
Ruj menyediakan cara untuk mengakses nod DOM atau elemen React yang dibuat dalam kaedah pemaparan.
function Button() { const handleClick = () => { alert('Button clicked!'); }; return <button onclick="{handleClick}">Click me</button>; }
Mencegah Gelagat Lalai
Gunakan preventDefault() untuk menghentikan gelagat penyemak imbas lalai untuk acara tertentu.
import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onclick="{()"> setCount(count + 1)}>Click me</button> </div> ); }
Penyebaran Peristiwa
Peristiwa tindak balas disebarkan sama seperti acara DOM asli. Anda boleh menggunakan stopPropagation() untuk mengelakkan acara menggelegak.
function ControlledInput() { const [value, setValue] = useState(''); return <input value="{value}" onchange="{e"> setValue(e.target.value)} />; }
Mengurus Negeri Kompleks
Pertimbangkan untuk menggunakan cangkuk useReducer atau pustaka pengurusan keadaan seperti Redux atau Zustand untuk logik keadaan yang kompleks.
function UncontrolledInput() { return <input defaultvalue="Hello">; }
Konteks
Konteks menyediakan cara untuk menghantar data melalui pepohon komponen tanpa perlu menurunkan props secara manual di setiap peringkat.
import React, { useRef } from 'react'; function TextInputWithFocusButton() { const inputEl = useRef(null); const onButtonClick = () => { inputEl.current.focus(); }; return ( <input ref="{inputEl}" type="text"> <button onclick="{onButtonClick}">Focus the input</button> > ); }
Rujukan: https://react.dev/learn/passing-data-deeply-with-context
Kesan Sampingan
Kesan sampingan ialah operasi yang mempengaruhi sesuatu di luar skop fungsi yang sedang dilaksanakan, seperti pengambilan data atau manipulasi DOM. Gunakan cangkuk useEffect untuk menguruskan kesan sampingan.
function Form() { const handleSubmit = (e) => { e.preventDefault(); console.log('Form submitted'); }; return; }
Amalan terbaik penggunaanEffect
- Sentiasa sertakan semua pembolehubah yang bergantung pada kesan anda dalam tatasusunan kebergantungan.
- Elakkan gelung tak terhingga dengan mempertimbangkan dengan teliti kebergantungan kesan anda.
- Membersihkan kesan sampingan dalam fungsi kembali useEffect.
function Parent() { return ( <div onclick="{()"> console.log('Parent clicked')}> <child></child> </div> ); } function Child() { const handleClick = (e) => { e.stopPropagation(); console.log('Child clicked'); }; return <button onclick="{handleClick}">Click me</button>; }
Rujukan:
- Anda Mungkin Tidak Perlu useEffect: https://react.dev/learn/you-might-not-need-an-effect
- Menyegerakkan dengan Kesan: https://react.dev/learn/synchronizing-with-effects
- Kitaran Hayat Kesan Reaktif: https://react.dev/learn/lifecycle-of-reactive-effects
Peraturan Reaksi
- Sentiasa mulakan nama komponen dengan huruf besar.
- Tutup semua teg, termasuk teg menutup sendiri.
- Jangan ubah suai prop secara langsung.
- Pastikan komponen tulen apabila boleh.
Rujukan: https://react.dev/reference/rules
Cangkuk Tersuai
Cakuk tersuai membolehkan anda mengekstrak logik komponen ke dalam fungsi boleh guna semula.
function Welcome(props) { return <h1 id="Hello-props-name">Hello, {props.name}</h1>; }
Peraturan Mata Kail
- Hanya panggil cangkuk di peringkat atas komponen anda.
- Hanya panggil cangkuk daripada komponen fungsi React atau cangkuk tersuai.
- Gunakan eslint-plugin-react-hooks untuk menguatkuasakan peraturan ini.
Rujukan: https://react.dev/reference/rules/rules-of-hooks
Itulah penutup dalam perjalanan React kami! Ingat, cara terbaik untuk belajar adalah dengan melakukan. Mula membina projek, bereksperimen dengan konsep ini dan jangan takut untuk menyelami dokumentasi React apabila anda memerlukan butiran lanjut. Selamat mengekod!
Atas ialah kandungan terperinci Ambilan Utama daripada Ulasan Terkini Saya tentang React Docs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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.

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.


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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan