Pengenalan ReactJS 03
Pengenalan ReactJS 03
React sendiri hanya berfokus pada pembangunan UI, tetapi dalam pengembangan
aplikasi, kita biasanya membutuhkan library tambahan untuk hal-hal seperti routing,
manajemen state, dan styling. Berikut adalah beberapa library yang sering digunakan
dalam ekosistem React.
```javascript
function App() {
return (
<Router>
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
</nav>
<Switch>
<Route path="/" exact component={Home} />
</Switch>
</Router>
);
```
React Router memudahkan untuk mengelola rute dan transisi halaman di aplikasi React,
sehingga pengguna dapat menikmati pengalaman navigasi yang responsif dan tanpa
perlu memuat ulang halaman.
Untuk aplikasi besar, **manajemen state global** menjadi penting karena sering kali
ada data yang perlu diakses oleh berbagai komponen di seluruh aplikasi. Berikut dua opsi
yang umum digunakan:
- **Redux**: Redux adalah library populer untuk manajemen state global, terutama
pada aplikasi yang kompleks. Redux menyediakan alur kerja yang lebih terstruktur
dengan konsep **store**, **actions**, dan **reducers**. Dengan Redux, kita bisa
memisahkan logika pengelolaan data dari tampilan UI dan mempermudah debugging.
- **Context API**: Context API adalah fitur bawaan React yang memungkinkan kita
untuk membuat konteks dan menyediakan data ke berbagai komponen tanpa harus
melakukan “props drilling” (passing data melalui banyak lapisan komponen).
Contoh sederhana Context API:
```javascript
return (
{children}
</ThemeContext.Provider>
);
function Component() {
return (
<div>
Toggle Theme
</button>
</div>
);
```
Redux cocok untuk aplikasi yang sangat kompleks, sedangkan Context API lebih
sederhana dan lebih cocok untuk state yang tidak terlalu besar.
Menyusun styling dalam React bisa dilakukan dengan berbagai cara, tergantung pada
preferensi dan kebutuhan aplikasi:
- **CSS Modules**: CSS Modules menyediakan CSS scoped ke komponen tertentu. Hal
ini mencegah konflik nama class di seluruh aplikasi.
```css
/* Button.module.css */
.button {
background-color: blue;
color: white;
```
```javascript
function Button() {
```
```javascript
background-color: blue;
color: white;
padding: 10px;
border: none;
`;
function App() {
```
Untuk berkomunikasi dengan server atau API, **Axios** atau **Fetch API** biasanya
digunakan. Axios adalah library HTTP yang menyediakan fitur tambahan di atas Fetch,
seperti interceptors, penanganan error yang lebih baik, dan dukungan untuk request
berbentuk JSON.
```javascript
function fetchData() {
axios.get('https://jsonplaceholder.typicode.com/posts')
```
Testing sangat penting dalam pengembangan aplikasi untuk memastikan bahwa setiap
komponen dan fungsionalitas bekerja seperti yang diharapkan.
- **Jest**: Framework testing yang disediakan secara default dalam proyek React yang
di-bootstrapped dengan Create React App. Jest memudahkan pengujian unit dan
snapshot testing.
- **React Testing Library**: Ini adalah pustaka testing yang dikembangkan khusus untuk
React, yang mendorong pengujian komponen berdasarkan cara pengguna berinteraksi
dengan UI.
```javascript
render(<App />);
expect(textElement).toBeInTheDocument();
});
render(<App />);
userEvent.click(button);
});
```
- **React Query**: Untuk pengelolaan data server yang efisien dan caching otomatis.
- **Next.js**: Framework React untuk membuat aplikasi SSR (Server Side Rendering)
atau SSG (Static Site Generation) yang optimal untuk SEO.
---
Itulah berbagai library dan alat dalam ekosistem React yang sering digunakan. Masing-
masing memiliki fungsinya tersendiri dan memberikan berbagai keuntungan, tergantung
pada kebutuhan aplikasi yang Anda bangun. Jika ada bagian yang ingin digali lebih lanjut,
beri tahu saja!