ReactJS atau React adalah library JavaScript populer buatan Facebook yang digunakan dalam proses pengembangan aplikasi mobile dan web. React berisi kumpulan snippet kode JavaScript (disebut ‘komponen’) yang bisa digunakan berulang kali untuk mendesain antarmuka pengguna.
Perlu diketahui bahwa ReactJS bukanlah framework JavaScript, karena hanya bertugas untuk untuk merender komponen area tampilan aplikasi. React adalah alternatif untuk framework seperti Angular dan Vue, yang sama-sama bisa digunakan untuk membuat fungsi yang kompleks.
npm dan npx adalah dua alat yang sering digunakan dalam ekosistem Node.js, terutama saat mengelola proyek berbasis JavaScript seperti React. Meskipun keduanya sering digunakan bersama, mereka memiliki fungsi yang berbeda. Berikut adalah perbedaan utama antara npm dan npx:
npm adalah manajer paket untuk JavaScript yang digunakan untuk:
package.json.Menginstal paket:
npm install <nama-paket>
Ini akan menginstal paket dari registry npm dan menambahkannya ke dalam folder node_modules/. Jika menggunakan npm install tanpa argumen, npm akan menginstal semua dependensi yang tercantum dalam file package.json.
Menjalankan skrip dari package.json:
npm run <skrip>
Misalnya, menjalankan skrip untuk memulai server pengembangan:
npm run start
Instalasi global: Paket bisa diinstal secara global di sistem menggunakan -g, sehingga dapat digunakan dari mana saja.
npm install -g <nama-paket>
npx adalah alat yang digunakan untuk mengeksekusi paket Node.js. Ini sebenarnya adalah fitur dari npm versi 5.2.0 ke atas. Tujuan utamanya adalah untuk menjalankan paket yang diinstal tanpa perlu menambahkannya secara global atau lokal.
Menjalankan paket tanpa menginstalnya secara global: Misalnya, jika Anda ingin menjalankan Create React App tanpa menginstalnya:
npx create-react-app my-app
Perintah ini akan langsung menjalankan create-react-app, bahkan jika paket tersebut belum diinstal di sistem. npx secara otomatis akan mengunduh dan mengeksekusi paket jika belum tersedia.
Menghindari instalasi global: Dengan npx, Anda tidak perlu menginstal alat secara global. Misalnya, alih-alih menginstal create-react-app secara global dengan npm install -g, Anda bisa menjalankannya langsung dengan npx create-react-app, menghindari polusi di lingkungan global.
Menggunakan versi terbaru: npx memastikan bahwa Anda selalu menggunakan versi terbaru dari alat tertentu karena mengambil paket dari registry npm pada saat eksekusi.
Menjalankan create-react-app tanpa menginstalnya secara global:
npx create-react-app my-app
Menjalankan alat CLI yang tidak terinstal di sistem, misalnya http-server:
npx http-server
| npm | npx |
|---|---|
| Digunakan untuk menginstal dan mengelola paket JavaScript. | Digunakan untuk menjalankan paket Node.js tanpa harus menginstalnya. |
| Paket harus diinstal terlebih dahulu (secara lokal atau global) untuk dapat digunakan. | Paket dapat langsung dijalankan tanpa menginstalnya. |
npm install akan menginstal paket ke dalam folder node_modules. |
npx akan mengeksekusi paket satu kali dan membersihkannya setelah eksekusi (jika belum terinstal). |
Umumnya digunakan untuk menjalankan skrip yang sudah didefinisikan dalam package.json. |
Digunakan untuk menjalankan alat CLI tanpa perlu instalasi permanen. |
Berikut adalah langkah-langkah untuk menginstal ReactJS menggunakan Create React App (CRA), alat yang paling umum digunakan untuk memulai proyek React:
Unduh dan instal Node.js dari situs resmi Node.js.
Cek versi Node.js dan npm untuk memastikan instalasi berhasil:
node -v
npm -v
Ini akan menampilkan versi yang terinstal dari Node.js dan npm.
Create React App adalah alat CLI yang menyediakan konfigurasi standar untuk memulai proyek React dengan cepat tanpa perlu konfigurasi manual.
Buka terminal atau command prompt.
Jalankan perintah berikut untuk membuat proyek React baru menggunakan npx (terinstal bersama npm):
npx create-react-app nama-proyek-anda
Penjelasan:
npx: Menjalankan perintah tanpa perlu menginstal Create React App secara global.create-react-app: Alat yang digunakan untuk membuat proyek React.nama-proyek-anda: Nama proyek atau folder di mana aplikasi React akan dibuat.Setelah perintah dijalankan, npx akan mengunduh dependensi dan menyiapkan struktur folder proyek.
Setelah proyek dibuat, pindah ke direktori proyek yang baru saja dibuat:
cd nama-proyek-anda
Setelah masuk ke direktori proyek, jalankan perintah berikut untuk memulai aplikasi React:
npm start
Ini akan menjalankan server pengembangan, membuka aplikasi di browser, dan menampilkan aplikasi React default di http://localhost:3000.
Setelah instalasi dan menjalankan aplikasi, Anda akan melihat struktur folder yang dibuat oleh Create React App:
src/: Di sinilah kode aplikasi React berada.public/: Berisi file index.html tempat aplikasi React akan dirender.node_modules/: Berisi semua dependensi yang diinstal melalui npm.adalah sebuah pustaka (library) yang digunakan dalam aplikasi React untuk mengelola navigasi dan routing (pengarahan) halaman. Dengan React Router, Anda dapat membuat aplikasi berbasis single-page application (SPA) yang memungkinkan pengguna berpindah antar halaman tanpa memuat ulang seluruh halaman dari server, seperti yang biasa terjadi pada aplikasi multi-halaman.
Routing Berbasis Komponen: React Router menggunakan komponen untuk mengatur routing. Beberapa komponen penting adalah:
<BrowserRouter>: Digunakan untuk membungkus seluruh aplikasi React yang menggunakan routing. Ini memanfaatkan HTML5 history API untuk mengatur URL.<Route>: Digunakan untuk mendefinisikan rute. Ketika path URL cocok dengan yang didefinisikan dalam <Route>, komponen yang ditentukan akan dirender.<Link>: Komponen ini digunakan sebagai pengganti tag HTML <a>, memungkinkan navigasi antar halaman tanpa memuat ulang.<Switch>: Mengelompokkan beberapa rute dan hanya merender rute pertama yang cocok.useParams, useHistory, useLocation: Hooks untuk mengakses informasi terkait routing, seperti parameter URL, histori navigasi, dan lokasi.Routing Dinamis dengan Parameter: React Router memungkinkan penanganan rute dengan parameter dinamis, seperti:
<Route path="/user/:id" component={UserProfile} />
Pada contoh di atas, URL /user/1 akan membuat UserProfile dirender dengan parameter id yang bernilai 1.
Navigasi Tanpa Memuat Ulang: React Router menggunakan Client-Side Routing, yang berarti perpindahan halaman dilakukan di sisi klien (browser) tanpa perlu melakukan request ulang ke server. Hanya komponen yang berubah yang dirender ulang.
Pengaturan Redirect: Anda bisa mengarahkan pengguna dari satu rute ke rute lain, baik secara manual (misalnya, setelah melakukan aksi tertentu) atau secara otomatis berdasarkan kondisi.
Berikut adalah contoh dasar penggunaan React Router dalam aplikasi React:
Pertama, Anda perlu menginstal React Router DOM:
npm install react-router-dom
Berikut adalah contoh kode sederhana yang menggunakan React Router:
import React from 'react';
import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
// Komponen untuk halaman Home
function Home() {
return <h2>Home Page</h2>;
}
// Komponen untuk halaman About
function About() {
return <h2>About Page</h2>;
}
// Komponen App yang mengatur routing
function App() {
return (
<Router>
<div>
{/* Link untuk navigasi antar halaman */}
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
</ul>
</nav>
{/* Switch untuk menentukan rute mana yang akan dirender */}
<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</div>
</Router>
);
}
export default App;
<BrowserRouter>: Membungkus seluruh aplikasi untuk mengaktifkan routing.<Link>: Digunakan untuk membuat link navigasi ke halaman tertentu tanpa perlu menggunakan <a>.<Route>: Menentukan rute yang akan dirender berdasarkan path. Misalnya, ketika URL cocok dengan /about, maka komponen About akan dirender.<Switch>: Menjaga agar hanya satu rute yang dirender pada satu waktu, yaitu rute pertama yang cocok dengan path.React Router sangat berguna ketika:
JSX (JavaScript XML) adalah ekstensi sintaksis untuk JavaScript yang digunakan dalam React untuk mendefinisikan elemen UI dengan cara yang mirip dengan HTML. JSX memungkinkan Anda untuk menulis struktur antarmuka pengguna dalam file JavaScript, yang nantinya akan dikompilasi menjadi fungsi JavaScript biasa.
JSX adalah kombinasi antara JavaScript dan XML (markup mirip HTML) yang digunakan untuk mendeskripsikan tampilan komponen React. JSX tidak secara langsung dipahami oleh browser; browser tidak dapat mengeksekusi JSX. Oleh karena itu, JSX dikompilasi menjadi JavaScript murni oleh Babel atau alat build yang digunakan, dan hasil akhirnya adalah pemanggilan fungsi-fungsi React.createElement di balik layar.
Contoh JSX:
const element = <h1>Hello, world!</h1>;
Kode di atas terlihat seperti HTML, tetapi sebenarnya ini adalah JSX. Setelah dikompilasi, ini akan menjadi sesuatu seperti ini:
const element = React.createElement('h1', null, 'Hello, world!');
JSX digunakan di dalam fungsi komponen atau class komponen React untuk merender elemen UI. Setiap komponen React akan mengembalikan JSX sebagai representasi UI yang akan dirender.
function Welcome() {
return <h1>Hello, World!</h1>;
}
export default Welcome;
Dalam contoh di atas:
<h1>Hello, World!</h1> adalah JSX yang akan dirender sebagai elemen HTML dalam browser.Welcome mengembalikan JSX, yang nantinya akan diproses oleh React untuk menghasilkan elemen DOM.import React, { Component } from 'react';
class Welcome extends Component {
render() {
return <h1>Hello, World!</h1>;
}
}
export default Welcome;
Di sini, JSX berada di dalam metode render() yang dimiliki oleh komponen kelas. React akan memanggil render() dan menampilkan hasilnya sebagai elemen UI.
JSX memberikan beberapa keuntungan penting dibandingkan menggunakan HTML biasa atau manipulasi DOM secara langsung dalam JavaScript:
JSX memungkinkan Anda untuk menyisipkan ekspresi JavaScript langsung di dalam markup. Ini memudahkan Anda untuk memanipulasi data dan melakukan perhitungan di dalam UI. Dalam HTML biasa, Anda harus secara manual mengubah elemen DOM melalui JavaScript.
Contoh:
const name = 'John';
const element = <h1>Hello, {name}!</h1>;
Di sini, {name} adalah ekspresi JavaScript yang dapat menampilkan nilai variabel di dalam markup.
JSX sangat cocok untuk komposisi komponen. Anda dapat dengan mudah menyusun komponen dengan menyisipkan komponen lain di dalam JSX, yang tidak dapat dilakukan dengan HTML biasa tanpa manipulasi DOM yang eksplisit.
Contoh:
function Header() {
return <h1>Welcome to My App</h1>;
}
function App() {
return (
<div>
<Header />
<p>This is a paragraph inside the App component.</p>
</div>
);
}
Di sini, komponen Header digunakan di dalam komponen App dengan sintaks yang sederhana.
Semua Tag Harus Ditutup: Tag dalam JSX harus selalu ditutup, baik itu tag pembuka dan penutup atau dengan tanda tutup sendiri. Misalnya:
<img src="image.jpg" />
<br />
Satu Elemen Parent:
JSX harus membungkus semua elemen di dalam satu elemen parent. Jika Anda ingin mengembalikan beberapa elemen, Anda harus membungkusnya dalam satu tag seperti <div> atau menggunakan fragment <>...</>.
return (
<>
<h1>Hello</h1>
<p>Welcome to React</p>
</>
);
Penyisipan Ekspresi JavaScript:
Anda dapat menyisipkan ekspresi JavaScript di dalam JSX dengan menggunakan kurung kurawal {}.
const name = "John";
return <h1>Hello, {name}!</h1>;
Environment variables dalam aplikasi React adalah variabel yang berisi konfigurasi atau informasi tertentu yang dapat digunakan di berbagai tempat dalam aplikasi. Variabel ini sering digunakan untuk menyimpan data sensitif atau konfigurasi yang berbeda-beda tergantung pada lingkungan di mana aplikasi dijalankan, seperti API keys, URL backend, atau pengaturan lainnya.
Dalam aplikasi React, environment variables digunakan untuk menghindari hardcoding informasi sensitif atau konfigurasional langsung di dalam kode sumber. Biasanya, data ini disimpan dalam file khusus seperti .env, yang tidak disertakan dalam sistem kontrol versi seperti Git (misalnya dengan menggunakan file .gitignore).
React mendukung penggunaan environment variables yang disimpan dalam file .env. Namun, agar environment variables dapat diakses dalam aplikasi React, semua variabel harus dimulai dengan REACT_APP_.
.env dalam React:Buat File .env di Root Proyek
.env (tanpa nama tambahan). Letakkan file ini di level yang sama dengan folder src/ dan public/.Tambahkan Environment Variables di File .env
REACT_APP_ agar React dapat mengenalinya.Contoh isi dari file .env:
REACT_APP_API_URL=https://api.example.com
REACT_APP_API_KEY=your-api-key
REACT_APP_ENVIRONMENT=development
Di atas, ada tiga variabel environment yang telah didefinisikan: REACT_APP_API_URL, REACT_APP_API_KEY, dan REACT_APP_ENVIRONMENT.
Akses Environment Variables di Kode React
process.env.Contoh penggunaannya dalam komponen React:
function App() {
return (
<div>
<h1>Environment: {process.env.REACT_APP_ENVIRONMENT}</h1>
<p>API URL: {process.env.REACT_APP_API_URL}</p>
</div>
);
}
export default App;
process.env.REACT_APP_ENVIRONMENT akan berisi nilai development jika didefinisikan seperti itu di file .env.Jangan Commit File .env ke Repository Git
.env bisa berisi data sensitif seperti API keys, sangat disarankan untuk menambahkan file .env ke dalam file .gitignore agar tidak di-commit ke repository Git.Contoh di .gitignore:
# Mengabaikan file .env
.env
Menggunakan Variabel Berbeda Berdasarkan Lingkungan
.env untuk berbagai lingkungan (development, test, production). Contoh:
.env (digunakan untuk development secara default).env.production (digunakan ketika aplikasi berjalan di mode produksi).env.development (digunakan khusus untuk pengembangan)Ketika aplikasi React dibuild untuk produksi, file .env.production akan digunakan secara otomatis oleh Create React App.
Untuk menjalankan aplikasi di mode produksi:
npm run build
.envMisalkan Anda bekerja di tiga lingkungan berbeda:
Anda bisa membuat tiga file .env yang berbeda:
.env.development
REACT_APP_API_URL=http://localhost:3000/api
REACT_APP_ENVIRONMENT=development
.env.production
REACT_APP_API_URL=https://api.myapp.com
REACT_APP_ENVIRONMENT=production
.env.test
REACT_APP_API_URL=http://localhost:4000/api
REACT_APP_ENVIRONMENT=test
Kemudian di kode React Anda, Anda dapat mengakses environment variables yang berbeda-beda berdasarkan environment yang aktif:
console.log('Current Environment:', process.env.REACT_APP_ENVIRONMENT);
console.log('API URL:', process.env.REACT_APP_API_URL);
Keamanan Data Sensitif: Anda dapat menyimpan informasi sensitif (seperti API key) di file .env yang tidak di-commit ke repository, sehingga data ini tidak terekspos ke publik.
Konfigurasi yang Fleksibel: Anda dapat menggunakan variabel yang berbeda untuk lingkungan development, production, dan testing tanpa mengubah kode sumber.
Kemudahan Maintenance: Environment variables memudahkan untuk mengubah konfigurasi global tanpa harus mengedit banyak bagian kode.
Testing sangat penting dalam pengembangan aplikasi React karena memastikan bahwa aplikasi berjalan sesuai dengan yang diharapkan dan dapat diandalkan. Dengan melakukan testing, Anda dapat meminimalisir bug, memastikan fitur baru tidak merusak fitur lama (regression), dan meningkatkan kualitas aplikasi secara keseluruhan.
Berikut adalah beberapa alasan mengapa testing dalam pengembangan aplikasi React sangat penting:
Mencegah Bug: Testing membantu mendeteksi bug pada tahap awal pengembangan. Ini mengurangi kemungkinan adanya masalah di lingkungan produksi yang dapat menyebabkan kerusakan pada aplikasi atau pengalaman pengguna yang buruk.
Memastikan Kinerja yang Stabil: Testing memastikan bahwa aplikasi tetap stabil saat dilakukan perubahan kode, misalnya saat penambahan fitur baru atau refactoring kode. Ini mengurangi risiko fitur lama rusak saat menambahkan yang baru.
Mendukung Continuous Integration dan Delivery (CI/CD): Testing otomatis mendukung praktik CI/CD, di mana perubahan kode secara otomatis diuji sebelum di-deploy ke lingkungan produksi. Ini memungkinkan tim untuk merilis fitur dengan lebih cepat dan lebih aman.
Dokumentasi Perilaku Aplikasi: Tes yang ditulis dengan baik berfungsi sebagai dokumentasi untuk perilaku yang diharapkan dari aplikasi. Ini sangat membantu ketika tim pengembangan berubah atau aplikasi semakin kompleks.
Refactoring Lebih Mudah: Ketika Anda ingin melakukan refactoring (perbaikan struktur kode tanpa mengubah fungsionalitas), testing otomatis memastikan bahwa perubahan tersebut tidak mempengaruhi fungsi aplikasi.
Meningkatkan Kepercayaan Diri: Dengan adanya tes otomatis, pengembang bisa lebih percaya diri saat melakukan perubahan pada kode, karena mereka tahu bahwa ada pengujian yang akan memberi tahu mereka jika ada kesalahan.
Unit Testing: Menguji bagian kecil dari aplikasi, biasanya fungsi atau komponen individual, untuk memastikan bahwa unit tersebut berfungsi dengan baik.
Contoh: Menguji apakah komponen tombol mengubah status saat diklik.
Integration Testing: Menguji bagaimana beberapa unit atau komponen bekerja bersama untuk memastikan mereka berinteraksi dengan benar.
Contoh: Menguji apakah formulir pengisian data dapat mengirimkan data ke API dan memproses respons dengan benar.
End-to-End (E2E) Testing: Menguji seluruh aplikasi dari perspektif pengguna, termasuk UI dan interaksi dengan server. Ini memastikan aplikasi bekerja secara keseluruhan sesuai dengan harapan.
Contoh: Menguji alur pengguna dari login hingga checkout di sebuah aplikasi e-commerce.
Snapshot Testing: Mengambil "snapshot" dari output render komponen dan membandingkannya dengan snapshot sebelumnya untuk mendeteksi perubahan yang tidak diinginkan.
Contoh: Menguji apakah tampilan komponen berubah secara tidak sengaja.
Berikut adalah beberapa alat dan framework testing yang sering digunakan dalam pengembangan aplikasi React:
Jest: Jest adalah framework testing yang dikembangkan oleh Facebook dan sering digunakan untuk pengujian unit, snapshot, dan integrasi di aplikasi React. Jest dilengkapi dengan fitur seperti mocking, timer, dan paralelisme untuk mempercepat pengujian.
Kelebihan:
Contoh penggunaan:
npm install --save-dev jest
Dan membuat file pengujian:
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3);
});
React Testing Library (RTL): React Testing Library adalah pustaka yang sangat populer untuk menguji komponen React dengan lebih mendekati interaksi pengguna sebenarnya. RTL memfokuskan pada pengujian perilaku UI dan memberikan metode untuk merender komponen, mencari elemen, dan memicu aksi pengguna.
Kelebihan:
Contoh Penggunaan RTL:
npm install --save-dev @testing-library/react
Contoh pengujian komponen tombol:
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import Button from './Button';
test('button renders with correct text', () => {
render(<Button text="Click me" />);
const buttonElement = screen.getByText(/click me/i);
expect(buttonElement).toBeInTheDocument();
});
Enzyme (dari Airbnb): Enzyme adalah pustaka testing untuk React yang memungkinkan Anda melakukan rendering komponen dan kemudian memeriksa atau memanipulasi output tersebut. Enzyme lebih banyak digunakan untuk unit testing dan shallow rendering (rendering komponen tanpa child components).
Kelebihan:
Kekurangan:
Contoh penggunaan:
npm install --save enzyme enzyme-adapter-react-16
Menggunakan Enzyme untuk shallow rendering:
import { shallow } from 'enzyme';
import MyComponent from './MyComponent';
it('renders without crashing', () => {
shallow(<MyComponent />);
});
Cypress: Cypress adalah alat testing end-to-end (E2E) untuk menguji aplikasi web secara keseluruhan dari perspektif pengguna. Cypress memungkinkan pengujian alur kerja yang kompleks, seperti menguji bagaimana pengguna mengisi formulir, login, atau berpindah halaman.
Kelebihan:
Contoh Penggunaan Cypress:
npm install cypress --save-dev
Membuat pengujian E2E:
describe('My First Test', () => {
it('Visits the Kitchen Sink', () => {
cy.visit('https://example.cypress.io')
cy.contains('type').click()
});
});
Mocha dan Chai: Mocha adalah framework untuk pengujian unit dan integrasi yang sering digunakan bersama Chai (pustaka assertion). Keduanya sering digunakan untuk pengujian tingkat lanjut dalam aplikasi React.
Kelebihan:
Kekurangan:
Testing dalam pengembangan aplikasi React sangat penting untuk memastikan stabilitas, keamanan, dan kualitas aplikasi. Alat-alat seperti Jest, React Testing Library (RTL), dan Cypress memungkinkan Anda untuk menguji aplikasi secara unit, integrasi, dan end-to-end dengan lebih mudah dan efisien. Testing otomatis juga mendukung praktik pengembangan yang berkelanjutan, membuat aplikasi lebih tahan terhadap perubahan dan fitur baru.
Setelah Anda berhasil menginstal aplikasi React, biasanya menggunakan Create React App (CRA), Anda dapat menjalankan server pengembangan (development server) untuk melihat aplikasi di browser. Server pengembangan React menyediakan fitur hot reloading, yang berarti setiap kali Anda mengubah kode, aplikasi di browser akan diperbarui secara otomatis tanpa perlu merefresh halaman secara manual.
Pastikan Anda Telah Menginstal Semua Dependensi Jika Anda baru saja membuat proyek menggunakan Create React App, pastikan untuk menginstal semua dependensi terlebih dahulu dengan menjalankan:
npm install
Ini akan menginstal semua dependensi yang diperlukan untuk menjalankan aplikasi.
Jalankan Server Pengembangan Setelah semua dependensi terinstal, jalankan server pengembangan menggunakan perintah berikut:
npm start
Atau jika Anda menggunakan yarn:
yarn start
Akses Aplikasi di Browser Setelah perintah di atas dijalankan, server pengembangan akan dimulai dan Anda akan melihat output di terminal yang menunjukkan bahwa server telah berjalan. Secara default, aplikasi akan tersedia di alamat:
http://localhost:3000
Browser Anda mungkin akan terbuka secara otomatis ke URL tersebut. Jika tidak, Anda dapat membuka http://localhost:3000 secara manual di browser untuk melihat aplikasi React Anda.
Hot Reloading dan Live Reloading: Saat server pengembangan berjalan, setiap perubahan yang Anda buat di kode sumber akan secara otomatis terdeteksi dan menyebabkan aplikasi di browser diperbarui (hot reloading). Ini memudahkan pengembangan karena Anda tidak perlu merefresh halaman browser secara manual setelah setiap perubahan.
Port Default (3000): Secara default, server pengembangan menggunakan port 3000. Jika port ini sudah digunakan oleh aplikasi lain di komputer Anda, Create React App akan menawarkan opsi untuk menggunakan port lain, misalnya port 3001 atau 3002. Anda juga dapat mengatur port yang ingin digunakan secara manual melalui environment variable.
Contoh untuk mengubah port secara manual:
PORT=4000 npm start
Ini akan menjalankan server pengembangan di port 4000.
Environment Variables:
Saat menjalankan server pengembangan, environment variables yang didefinisikan di dalam file .env akan diterapkan. Misalnya, jika Anda menggunakan variabel seperti API keys atau URL backend, pastikan environment yang tepat diatur di file .env.development.
Proxy API Requests:
Jika aplikasi React Anda memerlukan komunikasi dengan server backend selama pengembangan, Anda mungkin perlu mengatur proxy untuk menghindari masalah CORS (Cross-Origin Resource Sharing). Ini dapat dilakukan dengan menambahkan konfigurasi proxy di dalam file package.json.
Contoh konfigurasi proxy:
{
"proxy": "http://localhost:5000"
}
Ini akan meneruskan semua permintaan yang dibuat dari aplikasi React (di port 3000) ke server backend (di port 5000).
Memonitoring Kinerja: Server pengembangan tidak dioptimalkan untuk kinerja. Ini dimaksudkan untuk mempermudah pengembangan dengan menyediakan fitur seperti hot reloading, tetapi tidak dioptimalkan untuk produksi. Anda mungkin melihat waktu build yang lebih lama saat aplikasi bertambah besar. Ini normal selama pengembangan.
Build Production: Server pengembangan React bukan server produksi. Untuk membuat versi aplikasi yang siap untuk produksi, Anda perlu menjalankan:
npm run build
Ini akan menghasilkan direktori build/ yang berisi versi aplikasi yang sudah dioptimalkan untuk produksi.
npm start atau yarn start setelah instalasi.