Hari ini, di bagian selanjutnya dari terjemahan kursus pelatihan Bereaksi, kita akan mulai bekerja pada proyek pelatihan pertama dan berbicara tentang dasar-dasar gaya.

β 
Bagian 1: ikhtisar kursus, alasan popularitas React, ReactDOM dan JSXβ 
Bagian 2: komponen fungsionalβ 
Bagian 3: file komponen, struktur proyekβ 
Bagian 4: komponen induk dan anakβ 
Bagian 5: mulai bekerja pada aplikasi TODO, dasar-dasar gayaβ 
Bagian 6: tentang beberapa fitur kursus, JSX dan JavaScriptβ 
Bagian 7: gaya inlineβ 
Bagian 8: terus bekerja pada aplikasi TODO, terbiasa dengan sifat-sifat komponenβ 
Bagian 9: properti komponenβ 
Bagian 10: Workshop bekerja dengan properti komponen dan gayaβ 
Bagian 11: pembuatan markup dinamis dan metode susunan petaβ 
Bagian 12: lokakarya, pekerjaan tahap ketiga pada aplikasi TODOβ 
Bagian 13: komponen berbasis kelasβ 
Bagian 14: lokakarya tentang komponen berbasis kelas, status komponenβ 
Bagian 15: bengkel kesehatan komponenβ 
Bagian 16: tahap keempat dari pengerjaan aplikasi TODO, penanganan acaraβ 
Bagian 17: tahap kelima bekerja pada aplikasi TODO, memodifikasi status komponenβ 
Bagian 18: tahap keenam dari pengerjaan aplikasi TODOβ 
Bagian 19: metode siklus hidup komponenBagian 20: pelajaran pertama dalam rendering bersyaratβ 
Bagian 21: pelajaran kedua dan lokakarya tentang rendering bersyaratβ 
Bagian 22: tahap ketujuh bekerja pada aplikasi TODO, mengunduh data dari sumber eksternalβ 
Bagian 23: pelajaran pertama tentang bekerja dengan formulirβ 
Bagian 24: Pelajaran Bentuk Keduaβ 
Bagian 25: Workshop bekerja dengan formulirβ 
Bagian 26: arsitektur aplikasi, pola Container / Komponenβ 
Bagian 27: proyek kursusPelajaran 11. Workshop. Aplikasi TODO. Tahap nomor 1
β 
AsliDalam pelajaran ini, kita akan mulai mengerjakan proyek pelatihan pertama kita - aplikasi TODO. Kelas serupa akan dibingkai sebagai bengkel biasa. Pertama, Anda akan diberi tugas, untuk implementasi yang akan diperlukan untuk menavigasi dalam materi yang dipelajari sebelumnya, setelah itu solusi akan disajikan.
Kami akan mengerjakan aplikasi ini untuk beberapa waktu, oleh karena itu, jika Anda menggunakan 
create-react-app , disarankan untuk membuat proyek terpisah untuk itu.
β pekerjaan
- Buat aplikasi Bereaksi baru.
- Tampilkan komponen <App />pada halaman menggunakan fileindex.js.
- Komponen <App />harus menghasilkan kode untuk menampilkan 3-4 flag dengan beberapa teks mengikutinya. Teks dapat diformat menggunakan<p>atau<span>. Apa yang dapat Anda lakukan harus menyerupai daftar hal yang harus dilakukan di mana beberapa entri telah dibuat.
OlSolusi
Kode untuk file 
index.js :
 import React from 'react' import ReactDOM from 'react-dom' import App from './App' ReactDOM.render(   <App />,   document.getElementById('root') ) 
App.js file 
App.js :
 import React from "react" function App() {   return (       <div>           <input type="checkbox" />           <p>Placeholder text here</p>                     <input type="checkbox" />           <p>Placeholder text here</p>                     <input type="checkbox" />           <p>Placeholder text here</p>                     <input type="checkbox" />           <p>Placeholder text here</p>       </div>   ) } export default App 
Inilah yang terlihat seperti proyek 
create-react-app standar di VSCode pada tahap kerja ini.
Proyek dalam VSCodeInilah yang sekarang ditampilkan aplikasi kami di halaman.
Penampilan aplikasi di browserHari ini kami telah mengambil langkah pertama menuju aplikasi TODO. Tetapi apa yang menampilkan aplikasi ini di layar tidak terlihat senyaman apa yang muncul di halaman selama percobaan kami sebelumnya. Karena itu, dalam pelajaran selanjutnya kita akan fokus pada penataan elemen.
Pelajaran 12. Penataan Gaya Bereaksi Menggunakan Kelas CSS
β 
AsliSekarang kita akan mengerjakan aplikasi yang dibuat sebagai hasil dari workshop di pelajaran 10. Inilah yang ditampilkan aplikasi di layar.
Halaman aplikasi di browserKami ingin menata elemen elemen halaman. Bereaksi memiliki banyak pendekatan gaya. Kami sekarang menggunakan pendekatan dengan prinsip-prinsip yang mungkin sudah Anda kenal. Ini terdiri dalam menerapkan kelas-kelas CSS dan aturan-aturan CSS yang ditugaskan untuk kelas-kelas ini. Mari kita lihat struktur proyek ini dan pikirkan tentang elemen apa yang perlu ditugaskan kelas yang akan digunakan untuk mendesainnya.
Proyek dalam VSCodeFile 
index.js bertanggung jawab untuk merender komponen 
App . Komponen 
App menampilkan elemen 
<div> , yang berisi tiga komponen lainnya - 
Header , 
MainComponent dan 
Footer . Dan masing-masing komponen ini hanya menampilkan satu elemen JSX dengan teks. Dalam komponen-komponen inilah kita akan terlibat dalam penataan. Mari kita bekerja pada komponen 
Header . Ingatlah bahwa pada tahap karyanya ini, kodenya terlihat seperti ini:
 import React from "react" function Header() {   return (       <header>This is the header</header>   ) } export default Header 
Biasanya, ketika mereka bekerja dengan kode HTML dan ingin menetapkan kelas ke elemen tertentu, ini dilakukan dengan menggunakan atribut 
class . Misalkan kita akan menetapkan atribut seperti itu ke elemen 
<header> . Tapi di sini kita tidak boleh lupa bahwa kita bekerja bukan dengan kode HTML, tetapi dengan JSX. Dan di sini kita tidak dapat menggunakan atribut 
class (pada kenyataannya, Anda dapat menggunakan atribut dengan nama ini, tetapi ini tidak disarankan). Sebagai gantinya, atribut bernama 
className . Banyak publikasi mengatakan bahwa alasannya adalah karena 
class adalah kata kunci 
JavaScript dilindungi undang-undang. Tetapi, pada kenyataannya, JSX menggunakan JavaScript API biasa untuk bekerja dengan DOM. Untuk mengakses elemen menggunakan API ini, desain akrab dari formulir berikut digunakan:
 document.getElementById("something") 
Untuk menambahkan kelas baru ke elemen, lanjutkan sebagai berikut:
 document.getElementById("something").className += " new-class-name" 
Dalam situasi yang serupa, lebih mudah menggunakan properti elemen 
classList , khususnya, karena memiliki metode yang mudah untuk menambah dan menghapus kelas, tetapi dalam hal ini tidak masalah. Dan yang penting adalah properti 
className digunakan di 
className .
Sebenarnya, untuk menetapkan kelas ke elemen JSX, cukup bagi kami untuk mengetahui bahwa di mana kata kunci 
class digunakan dalam HTML, kata kunci 
className harus digunakan di JSX.
Tetapkan kelas navbar ke elemen 
<header> :
 import React from "react" function Header() {   return (       <header className="navbar">This is the header</header>   ) } export default Header 
Sekarang, di folder 
components , buat file 
Header.css . Masukkan kode berikut di dalamnya:
 .navbar { background-color: purple; } 
Sekarang hubungkan file ini ke 
Header.js dengan perintah 
import gunakan 
Header.css di 
Header.js ).
Beginilah tampilannya di VSCode.
File gaya dan koneksinya dalam VSCodeSemua ini akan mengarah pada kenyataan bahwa tampilan baris teratas yang ditampilkan oleh aplikasi pada halaman berubah.
Ubah gaya baris atasDi sini kami menggunakan gaya yang sangat sederhana. 
Header.css konten file 
Header.css yang berikut ini:
 .navbar {   height: 100px;   background-color: #333;   color: whitesmoke;   margin-bottom: 15px;   text-align: center;   font-size: 30px;   display: flex;   justify-content: center;   align-items: center; } 
Selain itu, buka file 
index.css sudah ada dalam proyek dan masukkan gaya berikut ke dalamnya:
 body {   margin: 0; } 
index.js file ini dalam 
index.js dengan perintah 
import "./index.css" . Akibatnya, halaman aplikasi akan mengambil bentuk yang ditunjukkan pada gambar berikut.
Ubah gaya halamanHarap perhatikan bahwa gaya yang ditentukan dalam 
index.css telah memengaruhi semua elemen halaman. Jika Anda menggunakan, misalnya, beberapa jenis editor online untuk eksperimen, bekerja dengan file gaya dapat diatur dengan cara khusus. Misalnya, dalam editor seperti itu, mungkin ada satu file gaya standar yang terhubung secara otomatis ke halaman, aturan CSS yang dijelaskan di mana akan diterapkan ke semua elemen halaman. Dalam contoh sederhana kami, akan sangat mungkin untuk menempatkan semua gaya di 
index.css .
Sebenarnya, dengan asumsi bahwa Anda sudah terbiasa dengan CSS, kita dapat mengatakan bahwa di sini kita menggunakan kode CSS yang persis sama yang digunakan untuk menata elemen HTML biasa. Hal utama yang perlu diingat ketika menata elemen dengan kelas di Bereaksi adalah bahwa alih-alih atribut elemen 
class yang digunakan dalam HTML, 
className digunakan.
Selain itu, perlu dicatat bahwa kelas hanya dapat ditugaskan untuk Bereaksi elemen - seperti 
<header> , 
<p> atau 
<h1> . Jika Anda mencoba menetapkan nama kelas ke instance komponen - seperti 
<Header /> atau 
<MainContent /> , sistem akan berperilaku sangat berbeda dari yang Anda harapkan. Kami akan membicarakan ini nanti. Sementara itu, ingatlah bahwa kelas dalam aplikasi Bereaksi ditugaskan untuk elemen, bukan komponen.
Berikut ini hal lain yang mungkin Anda rasa sulit untuk memulai dengan Bereaksi. Kita berbicara tentang elemen penataan yang memiliki berbagai tingkat hierarki pada halaman. Katakanlah ini terjadi ketika teknologi CSS Flexbox atau CSS Grid digunakan untuk penataan gaya. Dalam kasus seperti itu, misalnya, saat menggunakan tata letak Flex, Anda perlu mengetahui entitas mana yang merupakan wadah fleksibel dan entitas mana yang merupakan elemen flex. Yaitu, bisa sulit untuk memahami - bagaimana tepatnya elemen gaya, elemen mana yang menerapkan gaya tertentu. Misalkan, misalnya, bahwa elemen 
<div> dari komponen 
App kami harus berupa wadah fleksibel:
 import React from "react" import Header from "./components/Header" import MainContent from "./components/MainContent" import Footer from "./components/Footer" function App() {   return (       <div>           <Header />           <MainContent />           <Footer />       </div>   ) } export default App 
Dalam hal ini, elemen fleksibel ditampilkan melalui komponen 
Header , 
MainContent , dan 
Footer . Lihatlah, misalnya, pada kode komponen 
Header :
 import React from "react" import "./Header.css" function Header() {   return (       <header className="navbar">           This is the header       </header>   ) } export default Header 
Elemen 
<header> harus merupakan turunan langsung dari elemen 
<div> dari komponen 
App . Itu harus bergaya sebagai elemen fleksibel.
Untuk memahami stilisasi konstruksi semacam itu, Anda perlu mempertimbangkan kode HTML apa yang dihasilkan oleh aplikasi tersebut. Kami akan membuka tab 
Elements alat pengembang Chrome untuk laman yang muncul di browser saat bekerja dengan proyek yang dibuat menggunakan 
create-react-app .
Kode HalamanElemen 
<div> dengan 
root pengidentifikasi adalah elemen halaman 
index.html yang kita rujuk dalam metode 
ReactDOM.render() yang disebut dalam file 
index.js . Markup yang dihasilkan oleh komponen 
App ditampilkan di dalamnya, yaitu elemen 
<div> berikutnya, yang berisi elemen 
<header> , 
<main> dan 
<footer> dibentuk oleh komponen yang sesuai.
Yaitu, dengan menganalisis kode aplikasi Bereaksi yang diberikan di atas, kita dapat mengasumsikan bahwa konstruk 
<Header /> dalam komponen 
App diganti dengan 
<header className="navbar">This is the header</header> konstruktor 
<header className="navbar">This is the header</header> . Memahami fakta ini memungkinkan Anda untuk menggunakan skema kompleks untuk menata elemen halaman.
Ini menyimpulkan pengantar pertama kami untuk menata aplikasi Bereaksi. Disarankan agar Anda bereksperimen dengan apa yang baru saja Anda temukan. Misalnya, coba 
<MainContent /> keluaran elemen dengan komponen 
<MainContent /> dan 
<Footer /> <MainContent /> .
Ringkasan
Hari ini kami mulai mengembangkan proyek pelatihan pertama kami - aplikasi TODO, dan juga berkenalan dengan styling aplikasi Bereaksi menggunakan kelas CSS. Lain kali kita akan berbicara tentang fitur gaya kode yang dianut penulis kursus ini, serta beberapa hal tentang JSX dan JavaScript.
Pembaca yang budiman! Apakah Anda sudah memiliki ide untuk aplikasi yang ingin Anda buat menggunakan Bereaksi?
