Pengenalan ReactJS 02
Pengenalan ReactJS 02
Umumnya, aplikasi React memiliki struktur folder yang digunakan sebagai berikut:
```
my-app/
├── public/
│ ├── index.html
│ └── favicon.ico
├── src/
└── package.json
```
- **public/**: Berisi file statis seperti `index.html` yang menjadi kerangka dasar aplikasi,
di mana root React (`<div id="root">`) disisipkan.
- **src/**: Menyimpan semua kode sumber aplikasi, yang berisi berbagai folder khusus
untuk komponen, halaman, hook, service, dan lainnya.
2. Struktur Komponen
Dalam React, **komponen** adalah inti dari arsitektur aplikasi, dan struktur serta
kategorisasi komponen memainkan peran penting dalam menjaga kode tetap rapi.
- **Penamaan Komponen**:
```
components/
├── Header/
│ ├── Header.js
│ └── Header.css
└── Button/
├── Button.js
└── Button.css
```
3. Manajemen State
Pengelolaan state adalah aspek penting dalam arsitektur aplikasi React, terutama untuk
aplikasi yang kompleks.
- **Context API**: Jika ada data yang perlu dibagikan di berbagai komponen, Context
API dapat digunakan. Biasanya diletakkan di `src/context/` untuk mengakses konteks dari
mana saja di dalam aplikasi.
- **Redux atau Library State Management Lain**: Untuk aplikasi besar dengan state
yang kompleks, Redux atau state management lain bisa digunakan. Pengaturan Redux
melibatkan `actions`, `reducers`, dan `store`, serta folder terpisah di dalam `src`.
```javascript
function App() {
return (
<Router>
<Switch>
</Switch>
</Router>
);
```
Di sini:
- **Switch** dan **Route** menentukan rute dan komponen mana yang harus dirender
pada setiap rute.
5. Struktur Folder untuk Utilitas, API, dan Hook
- **utils/**: Folder ini biasanya digunakan untuk fungsi atau helper yang bisa digunakan
kembali di seluruh aplikasi, seperti fungsi format tanggal atau validasi input.
- **services/**: Menyimpan file untuk API. Misalnya, file `api.js` yang berisi semua
pemanggilan API ke backend, memungkinkan manajemen dan pemeliharaan yang lebih
mudah.
```javascript
try {
return response.data;
} catch (error) {
throw error;
};
```
```javascript
function useFetch(url) {
const [data, setData] = useState(null);
useEffect(() => {
setData(data);
setLoading(false);
fetchData();
}, [url]);
```
- **Gunakan Lazy Loading untuk Optimasi**: Dengan `React.lazy` dan `Suspense`, kita
bisa memuat komponen tertentu hanya saat dibutuhkan.