Routing và Navigation trong Vue.js - Hướng dẫn toàn diện

Routing và Navigation là hai khái niệm quan trọng trong Vue.js để tạo ra các trang và điều hướng giữa chúng trong ứng dụng web. Vue Router là một thư viện mạnh mẽ và linh hoạt để quản lý hệ thống routing trong Vue.js.

 

Dưới đây là các khái niệm cơ bản liên quan đến route trong Vue.js:

  1. Route: Route định nghĩa một đường dẫn và liên kết với một component tương ứng. Mỗi route có một path (đường dẫn) và một component.

  2. Vue Router: Vue Router là một thư viện quản lý route trong Vue.js. Nó cung cấp các công cụ để định nghĩa và quản lý các route trong ứng dụng Vue.

  3. Route Component: Mỗi route có một component tương ứng. Khi route được kích hoạt, component liên quan sẽ được hiển thị.

  4. Dynamic Route: Dynamic route cho phép định nghĩa các route có tham số động. Ví dụ, bạn có thể định nghĩa một route có đường dẫn "/user/:id" để hiển thị thông tin người dùng với id tương ứng.

  5. Nested Route: Nested route là khái niệm cho phép nhúng các route con bên trong route cha. Điều này cho phép bạn xây dựng các cấu trúc route phức tạp và sắp xếp các thành phần theo cấu trúc lồng nhau.

  6. Redirect Route: Redirect route cho phép chuyển hướng người dùng từ một đường dẫn đã cho đến một đường dẫn khác. Điều này hữu ích khi bạn muốn định tuyến người dùng từ một đường dẫn cũ đến một đường dẫn mới.

  7. Route Guard: Route guard là một chức năng cho phép bạn kiểm tra và kiểm soát quyền truy cập vào các route. Bằng cách sử dụng route guard, bạn có thể xác định các điều kiện để ngăn người dùng truy cập vào một số route hoặc thực hiện các xử lý đặc biệt trước khi chuyển hướng.

 

Để sử dụng Vue Router, bạn có thể thực hiện các bước sau:

Bước 1: Cài đặt Vue Router bằng npm hoặc yarn:

npm install vue-router

hoặc

yarn add vue-router

Bước 2: Tạo một file router.js trong thư mục gốc của dự án. Trong file này, chúng ta sẽ khai báo và cấu hình các route của ứng dụng.

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const router = new VueRouter({
  routes: [
    // Khai báo các route ở đây
  ]
});

export default router;

Bước 3: Trong file main.js, import Vue Router và liên kết nó với ứng dụng Vue:

import Vue from 'vue';
import App from './App.vue';
import router from './router';

new Vue({
  router,
  render: h => h(App),
}).$mount('#app');

Bước 4: Trong file router.js, bạn có thể khai báo các route bằng cách sử dụng các thành phần của Vue Router như path, component, và các thuộc tính khác.

Ví dụ, bạn có thể khai báo một route cho trang chủ và một route cho trang about như sau:

import Home from './components/Home.vue';
import About from './components/About.vue';

const router = new VueRouter({
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
});

Bước 5: Trong các component Vue, bạn có thể sử dụng các thành phần như <router-link> để tạo các liên kết đến các route khác, và <router-view> để hiển thị nội dung của route hiện tại.

Ví dụ, trong template của component Home, bạn có thể sử dụng <router-link> để tạo một liên kết đến trang about:

<router-link to="/about">Go to About</router-link>

Trong template của component App, bạn có thể sử dụng <router-view> để hiển thị nội dung của route hiện tại:

<router-view></router-view>

Với các bước trên, bạn đã thiết lập và sử dụng Vue Router để quản lý routing và navigation trong ứng dụng Vue.js của mình.