Mengenal Props di Class Component dan Cara Menggunakannya
Dalam React, props (properties) adalah salah satu konsep utama yang memungkinkan kita untuk mengirim data dari satu komponen ke komponen lainnya. Props digunakan untuk membuat komponen menjadi lebih dinamis dan reusable, terutama dalam Class Component.
Pada artikel ini, kita akan membahas apa itu props di Class Component, bagaimana cara menggunakannya, dan beberapa contoh implementasinya dalam kode React.
1. Apa Itu Props dalam Class Component?
Props adalah objek yang berisi data yang dikirim dari parent component ke child component. Data ini bersifat immutable, yang berarti tidak bisa diubah oleh komponen penerima.
Karakteristik Props:
✅ Digunakan untuk mengirim data dari parent ke child component.
✅ Bersifat immutable – Data tidak bisa diubah oleh komponen yang menerimanya.
✅ Membantu membuat komponen yang lebih fleksibel dan reusable.
Dalam Class Component, props diakses menggunakan this.props
.
2. Cara Menggunakan Props dalam Class Component
Mari kita buat contoh sederhana untuk memahami bagaimana props bekerja di Class Component.
📌 1. Membuat Parent Component
Di dalam App.js
, kita akan membuat komponen App yang mengirimkan props ke komponen Greeting.
import React, { Component } from 'react';
import Greeting from './components/Greeting';
class App extends Component {
render() {
return (
<div>
<Greeting name="John Doe" age={25} />
<Greeting name="Jane Smith" age={30} />
</div>
);
}
}
export default App;
Di sini, kita mengirim name dan age sebagai props ke komponen Greeting
.
📌 2. Menerima Props di Class Component
Sekarang, kita buat file Greeting.js
di dalam folder components/
untuk menerima props yang dikirim oleh App.js
.
import React, { Component } from 'react';
class Greeting extends Component {
render() {
return (
<div>
<h2>Halo, {this.props.name}!</h2>
<p>Usia kamu: {this.props.age} tahun</p>
</div>
);
}
}
export default Greeting;
📌 Penjelasan Kode:
this.props.name
→ Mengakses nilai dari propsname
.this.props.age
→ Mengakses nilai dari propsage
.- Setiap kali komponen
Greeting
dipanggil diApp.js
, props akan diisi sesuai dengan nilai yang diberikan.
Hasil Output di Browser:
Halo, John Doe!
Usia kamu: 25 tahun
Halo, Jane Smith!
Usia kamu: 30 tahun
Setiap kali kita memanggil Greeting
dengan props yang berbeda, konten akan berubah sesuai dengan data yang dikirim.
3. Menggunakan Default Props
Kadang, kita ingin memberikan nilai default untuk props jika tidak ada nilai yang dikirim dari parent component. Ini bisa dilakukan dengan defaultProps.
class Greeting extends Component {
static defaultProps = {
name: 'Guest',
age: 18,
};
render() {
return (
<div>
<h2>Halo, {this.props.name}!</h2>
<p>Usia kamu: {this.props.age} tahun</p>
</div>
);
}
}
Jika name
atau age
tidak diberikan, maka nilai default akan digunakan:
Halo, Guest!
Usia kamu: 18 tahun
4. Menggunakan Props dengan Destructuring
Untuk membuat kode lebih rapi, kita bisa menggunakan destructuring dalam Class Component.
class Greeting extends Component {
render() {
const { name, age } = this.props;
return (
<div>
<h2>Halo, {name}!</h2>
<p>Usia kamu: {age} tahun</p>
</div>
);
}
}
Dengan cara ini, kita tidak perlu menulis this.props
berkali-kali.
5. Kapan Harus Menggunakan Props dalam Class Component?
✅ Gunakan props jika:
- Komponen menerima data dari parent component.
- Data yang dikirim tidak boleh diubah oleh child component.
- Komponen bersifat stateless (hanya menampilkan data tanpa mengubahnya).
❌ Jangan gunakan props jika:
- Komponen harus mengubah data yang diterima (gunakan state).
- Tidak ada data yang perlu dikirim dari parent ke child.
6. Kesimpulan
- Props adalah cara untuk mengirim data dari parent ke child component dalam React.
- Dalam Class Component, props diakses menggunakan
this.props
. - Props bersifat immutable, artinya child component tidak bisa mengubah props yang diterimanya.
- Gunakan defaultProps untuk memberikan nilai default jika tidak ada props yang dikirim.
- Gunakan destructuring untuk membuat kode lebih bersih dan mudah dibaca.
Dengan memahami cara kerja props dalam Class Component, kita bisa membuat komponen React yang lebih fleksibel dan reusable!