BÀI 5: CHUYỂN TRANG VỚI VÀ ĐIỀU HƯỚNG

jk5587725

By jk5587725

Đăng ngày Tháng 7 8, 2025

Chúng ta cùng đến với Bài 5 – Navigation & Chuyển trang trong NuxtJS. Đây là một phần thiết yếu giúp bạn xây dựng menu, chuyển trang mượt màtạo trải nghiệm như SPA (Single Page App).


1. Sử dụng <NuxtLink /> thay cho <a>

Trong Nuxt, để chuyển trang nội bộ (internal routing), bạn nên dùng <NuxtLink> thay vì <a> để không bị reload toàn trang.

Ví dụ:

<template>
  <nav>
    <NuxtLink to="/">Trang chủ</NuxtLink> |
    <NuxtLink to="/about">Giới thiệu</NuxtLink>
  </nav>
</template>

Ưu điểm của NuxtLink

  • Không reload trang
  • Giữ lại trạng thái app
  • Tối ưu SEO và hiệu năng

2. Dùng route hiện tại để highlight menu

<script setup>
const route = useRoute()
</script>

<template>
  <NuxtLink
    to="/about"
    :class="{ active: route.path === '/about' }"
  >Giới thiệu</NuxtLink>
</template>

<style scoped>
.active {
  font-weight: bold;
  color: #42b983;
}
</style>

3. Điều hướng bằng useRouter()

Bạn có thể chuyển trang trong JavaScript bằng cách dùng router:

<script setup>
const router = useRouter()

function goToHome() {
  router.push('/')
}
</script>

<template>
  <button @click="goToHome">Về trang chủ</button>
</template>

4. Chuyển hướng (Redirect) sau khi login

<script setup>
const router = useRouter()

async function login() {
  // ... gọi API
  const success = true
  if (success) {
    router.push('/dashboard')
  }
}
</script>

5. Điều hướng bằng navigateTo() (Nuxt 3 style)

<script setup>
function toHome() {
  navigateTo('/')
}
</script>

<template>
  <button @click="toHome">Về trang chủ</button>
</template>

navigateTo() hỗ trợ thêm nhiều config nâng cao (redirect, replace, preserve scroll…)


6. Cấu hình chuyển hướng mặc định (redirect route)

Dùng definePageMeta() để tự redirect:

<script setup>
definePageMeta({
  redirect: '/dashboard'
})
</script>

Bạn đã học được

  • Dùng <NuxtLink> để chuyển trang nội bộ
  • Dùng useRoute() để lấy route hiện tại
  • Dùng useRouter() hoặc navigateTo() để chuyển trang thủ công
  • Cấu hình redirect mặc định trong trang

Bài tập mở rộng

  1. Tạo một menu gồm 3 trang: Home, About, Contact
  2. Active menu theo route hiện tại
  3. Tạo button “Đăng xuất” → redirect về trang login

📂 Chuyên mục:

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

[global_subscribe_form]

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.