π§© Konsep Komponen dalam React Native
π Apa itu Komponen?
Komponen (Component) adalah bagian dari suatu aplikasi yang biasanya terdiri dari props dan state.
Dalam React Native, komponen dapat dibangun dengan dua cara:
-
Functional Component β tidak memiliki
state
, hanya menerimaprops
. -
Class Component β memiliki
state
danprops
.
Komponen juga dapat berisi komponen-komponen kecil lainnya yang membentuk bagian tertentu dari antarmuka aplikasi.
π§ Contoh Struktur Komponen
Misalnya, pada sebuah menu navigasi, di dalamnya terdapat beberapa komponen seperti:
- Tombol Home
- Tombol Biodata
- Tombol Kontak
- Dan komponen lainnya
Tampilan ilustrasi menu navigasi:
π§± Jenis-Jenis Komponen Dasar React Native
Berikut adalah 6 jenis komponen dasar yang sering digunakan dalam membangun aplikasi dengan React Native:
- View β Sebagai wadah (container) untuk komponen lainnya.
- Text β Untuk menampilkan teks.
- Image β Untuk menampilkan gambar.
- TextInput β Untuk menerima input dari pengguna.
- ScrollView β Untuk memungkinkan halaman di-scroll ke atas dan bawah.
- StyleSheet β Untuk memberikan gaya (style) pada komponen.
π§ Membuat Komponen Kustom (Custom Component)
Kita dapat membuat komponen kustom dengan dua cara: Functional Component dan Class Component.
Contoh di bawah ini menggunakan file index.tsx
.
1οΈβ£ Functional Component (Hooks)
Contoh kode:
Dalam contoh di atas, terdapat dua komponen kustom yaitu Biodata
dan Foto
.
Keduanya ditampilkan di dalam komponen utama menggunakan pendekatan Functional Component.
πΉ Output aplikasi:
2οΈβ£ Class Component
Contoh kode:
Pada contoh Class Component ini juga terdapat dua komponen kustom yaitu Biodata
dan Foto
, sama seperti versi Functional Component.
πΉ Output aplikasi:
π― Kesimpulan
- Functional Component lebih ringkas dan modern, cocok digunakan bersama React Hooks.
- Class Component masih relevan, terutama untuk proyek lama yang belum beralih ke Hooks.
- Komponen merupakan pondasi utama dalam React Native β semua tampilan aplikasi dibangun dari kumpulan komponen.
Top comments (0)