Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
6 ธ.ค. เวลา 05:03 • การศึกษา
React Router คืออะไร
โดย
ในยุคของการพัฒนาเว็บแอปพลิเคชัน (Web Application) ด้วย React หรือ Next.js สิ่งที่ทำให้ผู้ใช้รู้สึกว่าใช้งาน "แอป" จริงๆ ไม่ใช่แค่ "เว็บเพจ" คือความสามารถในการเปลี่ยนเนื้อหา และ UI อย่างลื่นไหลโดยไม่ต้องโหลดหน้าใหม่ (Page Reload) ปรากฏการณ์นี้เรียกว่า Single-Page Application (SPA)
อย่างไรก็ตาม การจะทำให้ SPA มีโครงสร้างการนำทางที่ซับซ้อนเป็นระบบเหมือนเว็บไซต์แบบดั้งเดิมที่มีหลายหน้า จำเป็นต้องมีเครื่องมือจัดการ "เส้นทาง" (Routing) ที่ทรงพลัง React Router จึงถือกำเนิดขึ้นเป็นมาตรฐานหลักในการควบคุมการเดินทางของผู้ใช้ภายในแอป React อย่างมีประสิทธิภาพ
★
React Router คืออะไร
React Router คือ ไลบรารีมาตรฐานสำหรับการจัดการ Routing (เส้นทางการนำทาง) ในแอปพลิเคชันที่สร้างด้วย React โดยมีจุดประสงค์หลักคือ การซิงค์ (Synchronize) URL ที่ปรากฏใน Address Bar ของเบราว์เซอร์ กับส่วนประกอบ UI (Components) ที่ควรจะแสดงผลใแอปพลิเคชันนั้นๆ
ด้วยกลไกนี้ เราสามารถสร้างเว็บแอปที่เปลี่ยน "หน้า" ได้อย่างรวดเร็ว (Client-side Routing) โดยไม่ต้องร้องขอหน้าใหม่จากเซิร์ฟเวอร์ทุกครั้งที่คลิกลิงก์ พร้อมกับรักษาประวัติการเรียกดู (Browser History) และ ความสามารถในการกดกลับ/ไปหน้า (Back/Forward) ของเบราว์เซอร์ได้อย่างสมบูรณ์
★
React Router ทำงานอย่างไร
1) BrowserRouter (ตัวประสานกับเบราว์เซอร์) คอมโพเนนต์หลักที่ใช้เป็น Wrapper รอบทั้งแอป มันจะรับฟังการเปลี่ยนแปลงของ URL และ ประสานข้อมูลกับ History API ของเบราว์เซอร์ เพื่อให้เบราว์เซอร์เข้าใจการนำทางภายใน SPA
2) Routes และ Route (ประกาศเส้นทาง)
ภายใน BrowserRouter เราจะใช้คอมโพเนนต์ <Routes> เป็นเหมือนแผนที่ และ ใช้ <Route> ย่อยๆ เพื่อกำหนดว่า "เส้นทาง (Path)" ใด ควรแสดง "คอมโพเนนต์ (Element)" ใด เช่น
1
```jsx
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/products" element={<ProductList />} />
<Route path="/products/:id" element={<ProductDetail />} />
</Routes>
```
3) ลิงก์ภายในแอป (Link) แทนที่จะใช้แท็ก <a href="..."> ปกติ ซึ่งจะทำให้เบราว์เซอร์โหลดหน้าใหม่ React Router มีคอมโพเนนต์ <Link to="..."> ทำหน้าที่เปลี่ยน URL ผ่าน History API โดยไม่โหลดหน้าใหม่ แล้วกระตุ้นให้ Routes แสดงคอมโพเนนต์ที่ตรงกับเส้นทางใหม่ทันที
4) การจับค่ารูปแบบ (Dynamic Routing & Parameters)
React Router รองรับเส้นทางแบบไดนามิก (เช่น /products/:id) ทำให้สามารถดึงค่า id จาก URL มาใช้ในคอมโพเนนต์ปลายทาง (เช่น ProductDetail) เพื่อดึงข้อมูลสินค้าที่ต้องการได้
★
ประเภทและรุ่นของ React Router
1) react-router-dom
เป็นแพ็คเกจหลักที่นักพัฒนาเว็บใช้กันอย่างกว้างขวาง สำหรับสร้าง Web Applications (ทั้ง CSR - Client-Side Rendering และ ผสมกับ SSR - Server-Side Rendering) มีคุณสมบัติครบถ้วนสำหรับการทำงานบนเบราว์เซอร์
2) react-router-native
เป็นแพ็คเกจสำหรับใช้พัฒนาแอป React Native สำหรับ iOS และ Android โดยใช้หลักการเดียวกัน แต่ปรับให้เข้ากับระบบนำทางของมือถือ
3) รุ่นต่างๆ ปัจจุบัน (ปี 2025) React Router รุ่น 6 เป็นรุ่นล่าสุดที่มีการปรับปรุง API ให้กระชับและมีประสิทธิภาพมากขึ้น เช่น การเปลี่ยนจาก <Switch> เป็น <Routes>, การใช้ element แทน component และ การนำเสนอฟีเจอร์ loaders และ actions สำหรับการจัดการข้อมูลที่เกี่ยวข้องกับเส้นทาง
★
ประโยชน์
✅️ สร้างประสบการณ์ผู้ใช้แบบ Seamless
ผู้ใช้ไม่ต้องรอโหลดหน้าใหม่ทุกครั้งที่เปลี่ยนส่วนเนื้อหา ทำให้รู้สึกเร็ว และ ลื่นไหลเหมือนใช้แอปพลิเคชันบนเดสก์ท็อป
✅️ จัดการโครงสร้างแอปอย่างเป็นระบบ
ทำให้โครงสร้างของแอปชัดเจน รู้ว่าส่วนไหนอยู่ที่ URL อะไร ส่งผลต่อการพัฒนาที่เป็นระเบียบ และ บำรุงรักษาได้ง่าย
✅️ รองรับการนำทางที่ซับซ้อน
จัดการกับการเปลี่ยนเส้นทางแบบมีเงื่อนไข (Conditional Routing), การป้องกันเส้นทาง (Protected Routes) สำหรับสมาชิก, การนำทางแบบซ้อน (Nested Routes) และ การส่งค่าผ่าน URL ได้อย่างมีประสิทธิภาพ
✅️ SEO-Friendly (เมื่อใช้ร่วมกับเทคนิคอื่น)
แม้ SPA จะมีปัญหาเรื่อง SEO เบื้องต้น แต่เมื่อใช้ React Router ร่วมกับเทคนิค Server-Side Rendering (เช่นใน Next.js หรือ ใช้กับเฟรมเวิร์กที่รองรับ) จะช่วยให้บอตของเสิร์ชเอนจิ้นมองเห็นเนื้อหาแต่ละหน้าได้ชัดเจน
✅️ ชุมชนและเอกสารที่แข็งแกร่ง
เป็นไลบรารีมาตรฐานที่มีชุมชนสนับสนุนใหญ่โต มั่นใจได้ในความน่าเชื่อถือ และ หาคำตอบเมื่อมีปัญหาได้ง่าย
★
ตัวอย่างการใช้งาน
1) แอปบริหารแดชบอร์ด
แอปที่มีเมนูด้านข้างสำหรับเข้าสู่หน้าแดชบอร์ดหลัก, หน้าจัดการผู้ใช้ และ หน้าข้อมูลสถิติ โดยแต่ละหน้าเปลี่ยนเฉพาะส่วนเนื้อหาหลัก โดยที่ส่วนหัว และ เมนูยังคงที่
2) เว็บไซต์อีคอมเมิร์ซ ใช้ React Router ในการจัดการเส้นทาง เช่น
○ / (หน้าหลัก),
○ /category/electronics
(หน้าแสดงสินค้าตามหมวดหมู่),
○ /product/smartphone-model-123
(หน้ารายละเอียดสินค้า),
○ /cart (ตะกร้าสินค้า)
โดยผู้ใช้สามารถคลิกดูสินค้า และ ย้อนกลับได้อย่างรวดเร็ว
3) เว็บแอปสื่อสังคมออนไลน์
ในการแสดงฟีดข่าว (/feed),
โปรไฟล์ของผู้ใช้ (/@username),
หน้าตั้งค่า (/settings),
และ การแชท (/messages) โดยทุกการเปลี่ยนหน้าเกิดขึ้นทันที
4) แอปที่มีระบบสมาชิก
การใช้ React Router ร่วมกับการตรวจสอบสถานะการล็อกอิน (Authentication) เพื่อป้องกันไม่ให้ผู้ใช้ที่ยังไม่ได้ล็อกอินเข้าถึงเส้นทางเช่น
/dashboard หรือ /profile โดยจะถูกเปลี่ยนเส้นทางไปที่ /login แทน
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app/
✓
โครงสร้าง URL ที่ดีสำหรับ SEO 👇
>>
https://www.blockdit.com/posts/6892f06d6eb9b7345c81cc97
✓
React คืออะไร 👇
>>
https://www.blockdit.com/posts/68a2cf1db8c4265b7aa8de41
✓
React Native คืออะไร 👇
>>
https://www.blockdit.com/posts/69339bf63a5e591adf3fa04e
Credit :
👇
●
https://www.blockdit.com/posts/60175ce1d4623c0bc2fe7451
●
https://www.geeksforgeeks.org/reactjs/reactjs-router/
●
https://tinyurl.com/3jse82ce
●
https://tinyurl.com/27hydcc3
เทคโนโลยี
ข่าวรอบโลก
react
บันทึก
3
2
3
2
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย