๐งญ Vue Router
Vue Router adalah library resmi untuk manajemen routing (navigasi) pada aplikasi Vue.js. Dengan Vue Router, kamu dapat membuat Single Page Application (SPA) dengan navigasi antar halaman tanpa reload.
๐ฆ 1. Instalasi Vue Routerโ
a. Jika menggunakan Vue CLI:โ
vue add router
b. Atau secara manual:โ
npm install vue-router
๐ง 2. Konfigurasi Dasar Vue Routerโ
File: src/router/index.js
import Vue from 'vue';
import Router from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';
Vue.use(Router);
export default new Router({
mode: 'history',
routes: [
{ path: '/', name: 'Home', component: Home },
{ path: '/about', name: 'About', component: About },
]
});
๐ 3. Menggunakan Router di Aplikasiโ
File: src/main.js
import Vue from 'vue';
import App from './App.vue';
import router from './router';
new Vue({
router,
render: h => h(App)
}).$mount('#app');
๐ 4. Navigasi Halamanโ
Gunakan <router-link>
untuk navigasi antar halaman:
<router-link to="/">Beranda</router-link>
<router-link to="/about">Tentang</router-link>
<router-link>
akan dirender menjadi elemen <a>
otomatis.
๐ฆ 5. Tampilan Dinamisโ
Tambahkan <router-view>
di komponen utama untuk menampilkan halaman berdasarkan URL:
<template>
<div>
<h1>My App</h1>
<router-view />
</div>
</template>
๐ 6. Struktur Direktori Umumโ
src/
โโโ views/
โ โโโ Home.vue
โ โโโ About.vue
โโโ router/
โ โโโ index.js
โโโ App.vue
โโโ main.js
๐ 7. Parameter & Routing Dinamisโ
{ path: '/user/:id', component: User }
Akses parameter:
this.$route.params.id
๐ฎ 8. Navigation Guards (Middleware)โ
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isLoggedIn()) {
next('/login');
} else {
next();
}
});
๐งช 9. Mode history
vs hash
โ
Mode | URL Contoh | Keterangan |
---|---|---|
hash | /#/about | Default, tidak butuh konfigurasi server |
history | /about | Butuh konfigurasi server (nginx, etc) |
Gunakan mode: 'history'
untuk URL bersih dan SEO-friendly.
๐ Kesimpulan Vue Router adalah komponen kunci dalam membangun aplikasi Vue SPA. Dengan konsep komponen dan routing dinamis, kamu dapat membuat aplikasi multi-halaman yang efisien dan modern.