Navigasi dengan Expo Router
Siapkan Expo Router untuk navigasi berbasis file dengan rute bertipe dan tautan mendalam.
Navigasi dengan Expo Router adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.
Apa Itu Expo Router?
Expo Router adalah pustaka perutean berbasis berkas untuk React Native (dibangun di atas React Navigation). Seperti App Router Next.js, struktur berkas menentukan rute navigasi Anda.
Instalasi
Buat proyek Expo baru dengan Expo Router yang telah dikonfigurasi sebelumnya.
# Create new project:
npx create-expo-app@latest my-app --template tabs
# Or add to existing Expo project:
npx expo install expo-router react-native-safe-area-context react-native-screensRute Berbasis Berkas
Berkas di direktori app/ secara otomatis menjadi rute. index.tsx adalah akar, sedangkan [id].tsx adalah segmen dinamis.
app/
_layout.tsx # root layout (Stack navigator)
index.tsx # → / (home screen)
profile.tsx # → /profile
posts/
_layout.tsx # posts stack layout
index.tsx # → /posts
[id].tsx # → /posts/123 (dynamic)Tata Letak Akar
_layout.tsx akar membungkus semua layar dengan penyedia dan menentukan navigator tingkat teratas.
// app/_layout.tsx
import { Stack } from 'expo-router';
export default function RootLayout() {
return (
<Stack>
<Stack.Screen name="index" options={{ title: 'Home' }} />
<Stack.Screen name="profile" options={{ title: 'Profile' }} />
</Stack>
);
}Navigasi dengan Link
Gunakan komponen Link dari expo-router untuk navigasi deklaratif — serupa dengan next/link.
import { Link } from 'expo-router';
function HomeScreen() {
return (
<Link href="/profile">Go to Profile</Link>
);
}Navigasi dengan useRouter
Gunakan useRouter() untuk navigasi imperatif — mendorong, mengganti, atau kembali secara terprogram.
import { useRouter } from 'expo-router';
function LoginForm() {
const router = useRouter();
async function handleLogin() {
await login();
router.replace('/dashboard');
}
}Rute Dinamis
Akses parameter rute dengan useLocalSearchParams() di dalam berkas rute dinamis.
// app/posts/[id].tsx
import { useLocalSearchParams } from 'expo-router';
export default function PostScreen() {
const { id } = useLocalSearchParams<{ id: string }>();
return <PostDetail postId={id} />;
}Navigasi Tab
Gunakan Tabs dari expo-router di dalam tata letak grup untuk navigasi tab bawah.
// app/(tabs)/_layout.tsx
import { Tabs } from 'expo-router';
export default function TabLayout() {
return (
<Tabs>
<Tabs.Screen name="index" options={{ title: 'Home', tabBarIcon: ({ color }) => <HomeIcon color={color} /> }} />
<Tabs.Screen name="explore" options={{ title: 'Explore' }} />
</Tabs>
);
}Layar Modal
Tampilkan layar sebagai modal dengan menetapkan presentation: 'modal' di opsi Stack.Screen.
// app/_layout.tsx
<Stack.Screen name="modal" options={{ presentation: 'modal', title: 'Settings' }} />
// Navigate to modal:
router.push('/modal');Tautan Mendalam
Expo Router menangani tautan mendalam secara otomatis. Tentukan skema URL Anda di app.json, lalu tautan seperti myapp://posts/123 akan membuka layar yang benar.
// app.json
{
"expo": {
"scheme": "myapp"
}
}Pola Autentikasi
Gunakan tata letak akar yang merender layar autentikasi atau tab aplikasi secara kondisional berdasarkan status autentikasi.
// app/_layout.tsx
import { Redirect } from 'expo-router';
function RootLayout() {
const { user } = useAuth();
if (!user) return <Redirect href="/login" />;
return <Stack />;
}Pemeriksaan Singkat
Hook Expo Router mana yang membaca parameter rute dinamis seperti id di /posts/[id]?
Ringkasan
Expo Router menggunakan perutean berbasis berkas: app/index.tsx → beranda, app/[id].tsx → dinamis. Tentukan tata letak di _layout.tsx, lakukan navigasi dengan Link atau useRouter(), dan baca parameter dengan useLocalSearchParams().
Belajar React dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Navigasi dengan Expo Router” gratis?
Ya — teks lengkap “Navigasi dengan Expo Router” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Navigasi dengan Expo Router”?
Siapkan Expo Router untuk navigasi berbasis file dengan rute bertipe dan tautan mendalam. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai React Academy?
Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Navigasi dengan Expo Router” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Komponen Inti React Native vs DOM Web
- Penataan Gaya dengan API StyleSheet & Flexbox
- Navigasi dengan Expo Router
- Mengakses API Perangkat: Kamera, Lokasi & Notifikasi Push