เส้นทางซ้อนและเส้นทางแบบไดนามิก
สร้างเลย์เอาต์ซ้อนและพารามิเตอร์เส้นทางแบบไดนามิก
เส้นทางซ้อนและเส้นทางแบบไดนามิก เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่า Vue Router
- เส้นทางซ้อนและเส้นทางแบบไดนามิก
- ตัวป้องกันการนำทาง