0Pricing
Vue Academy · บทเรียน

เส้นทางซ้อนและเส้นทางแบบไดนามิก

สร้างเลย์เอาต์ซ้อนและพารามิเตอร์เส้นทางแบบไดนามิก

เส้นทางซ้อนและเส้นทางแบบไดนามิก เป็นบทเรียน Vue Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Vue Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Vue Academy มีบทเรียนทั้งหมด 3 บทเรียน

เหนือกว่าเส้นทางแบบคงที่

แอปจริงจำเป็นต้องมีเส้นทางที่ส่งข้อมูลไปด้วยและซ้อนอยู่ภายในเค้าโครง

  • ส่วนของเส้นทางแบบไดนามิกใช้เก็บค่า เช่น รหัส
  • เส้นทางที่ซ้อนกันแสดงเส้นทางย่อยภายในคอมโพเนนต์แม่
  • เส้นทางที่มีชื่อและการนำทางโดยใช้คำสั่งช่วยเพิ่มความยืดหยุ่น

ส่วนของเส้นทางแบบไดนามิก

เครื่องหมายโคลอนใช้กำหนดส่วนของเส้นทางแบบไดนามิกที่จับคู่กับค่าใด ๆ

const routes = [
  { path: "/user/:id", component: UserProfile }
]

// Matches /user/1, /user/42, /user/abc

การเข้าถึง route.params

อ่านค่าที่จับไว้ผ่าน route.params

<script setup>
import { useRoute } from "vue-router"

const route = useRoute()
console.log(route.params.id)
</script>

การตอบสนองต่อการเปลี่ยนแปลงพารามิเตอร์

เมื่อมีเพียงพารามิเตอร์ที่เปลี่ยนแปลง เช่น จาก /user/1 เป็น /user/2 คอมโพเนนต์จะถูกนำกลับมาใช้ซ้ำ ให้เฝ้าดูพารามิเตอร์เพื่อโหลดข้อมูลใหม่

import { watch } from "vue"
import { useRoute } from "vue-router"

const route = useRoute()
watch(() => route.params.id, (newId) => {
  loadUser(newId)
})

ส่วนของเส้นทางแบบไดนามิกหลายส่วน

เส้นทางหนึ่งรายการสามารถมีส่วนแบบไดนามิกได้หลายส่วน

const routes = [
  { path: "/user/:userId/post/:postId", component: Post }
]

// route.params.userId and route.params.postId

เส้นทางที่ซ้อนกัน

เส้นทางที่ซ้อนกันช่วยให้เส้นทางย่อยแสดงผลอยู่ภายในคอมโพเนนต์แม่

const routes = [
  {
    path: "/user/:id",
    component: UserLayout,
    children: [
      { path: "profile", component: Profile },
      { path: "posts", component: Posts }
    ]
  }
]

ส่วนแสดงผลของเราเตอร์ที่ซ้อนกัน

คอมโพเนนต์แม่ต้องมีส่วนแสดงผลของเราเตอร์เป็นของตัวเอง เพื่อให้เส้นทางย่อยแสดงผลภายในได้

<!-- UserLayout.vue -->
<template>
  <h1>User</h1>
  <router-view></router-view>
</template>

<!-- /user/1/profile renders Profile here -->

เส้นทางที่มีชื่อ

กำหนดชื่อให้เส้นทาง เพื่อใช้อ้างถึงเส้นทางนั้นโดยไม่ต้องเขียนเส้นทางตายตัว

const routes = [
  {
    path: "/user/:id",
    name: "user",
    component: UserProfile
  }
]

การเชื่อมโยงด้วยชื่อ

ลิงก์ของเราเตอร์สามารถชี้ไปยังเส้นทางที่มีชื่อและส่งพารามิเตอร์เป็นออบเจ็กต์ได้

<router-link
  :to="{ name: 'user', params: { id: 42 } }"
>
  View User
</router-link>

การนำทางโดยใช้คำสั่ง

นำทางจาก JavaScript ด้วยเมธอด push ของเราเตอร์

import { useRouter } from "vue-router"

const router = useRouter()

function goToUser(id) {
  router.push({ name: "user", params: { id } })
}

เมธอดการนำทางอื่น ๆ

เราเตอร์มีตัวช่วยสำหรับการนำทางเพิ่มเติมดังนี้

  • router.pushเพิ่มรายการใหม่ลงในประวัติ
  • router.replaceนำทางโดยไม่เพิ่มรายการใหม่ลงในประวัติ
  • router.backกลับไปยังหน้าก่อนหน้า

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับเส้นทางแบบไดนามิกและเส้นทางที่ซ้อนกัน

ทบทวน: เส้นทางที่ซ้อนกันและเส้นทางแบบไดนามิก

คุณได้เรียนรู้การกำหนดเส้นทางขั้นสูงแล้ว

  • ส่วนของเส้นทางแบบไดนามิก (/user/:id) ที่เก็บไว้ใน route.params
  • เส้นทางที่ซ้อนกันผ่าน children และส่วนแสดงผลของเราเตอร์ที่ซ้อนกัน
  • เส้นทางที่มีชื่อช่วยให้เชื่อมโยงด้วยชื่อได้
  • router.pushใช้สำหรับนำทางโดยใช้คำสั่ง

ถัดไป: ตัวป้องกันการนำทาง

คำถามที่พบบ่อย

บทเรียน “เส้นทางซ้อนและเส้นทางแบบไดนามิก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เส้นทางซ้อนและเส้นทางแบบไดนามิก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Vue Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Vue Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เส้นทางซ้อนและเส้นทางแบบไดนามิก”

สร้างเลย์เอาต์ซ้อนและพารามิเตอร์เส้นทางแบบไดนามิก คุณปฏิบัติ Vue Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Vue Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Vue Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “เส้นทางซ้อนและเส้นทางแบบไดนามิก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Vue Academy นี้ได้ไหม

ได้ บทเรียน Vue Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่า Vue Router
  2. เส้นทางซ้อนและเส้นทางแบบไดนามิก
  3. ตัวป้องกันการนำทาง
← กลับไปที่ Vue Academy