เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์
กำหนดค่า prerender, SSR และ CSR แยกตามเส้นทาง
เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์ เป็นบทเรียน Angular Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Angular Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน
ไม่มีวิธีเดียวที่เหมาะกับทุกกรณี
ไม่ใช่ทุกเส้นทางที่ควรแสดงผลด้วยวิธีเดียวกัน Angular SSR ช่วยให้คุณกำหนด โหมดการแสดงผล แยกตามเส้นทางได้ ได้แก่ แสดงผลบนเซิร์ฟเวอร์ แสดงผลบนไคลเอ็นต์ หรือสร้างล่วงหน้าในเวลาสร้างแอป
สามโหมด
RenderMode.Server จะแสดงผลเมื่อมีคำขอแต่ละครั้ง RenderMode.Client จะแสดงผลเฉพาะในเบราว์เซอร์ (CSR) และ RenderMode.Prerender จะสร้าง HTML แบบคงที่ในเวลาสร้างแอป (SSG)
การตั้งค่าเส้นทางเซิร์ฟเวอร์
กำหนด ServerRoute[] เพื่อจับคู่เส้นทางกับโหมดการแสดงผล จากนั้นจัดเตรียมรายการนี้ด้วย provideServerRouting ในการตั้งค่าเซิร์ฟเวอร์
import { RenderMode, ServerRoute } from '@angular/ssr';
export const serverRoutes: ServerRoute[] = [
{ path: '', renderMode: RenderMode.Prerender },
{ path: 'dashboard', renderMode: RenderMode.Client },
{ path: '**', renderMode: RenderMode.Server }
];การเชื่อมต่อการตั้งค่า
ลงทะเบียนเส้นทางในการตั้งค่าแอปฝั่งเซิร์ฟเวอร์ เพื่อให้กลไก SSR ทราบวิธีจัดการแต่ละเส้นทาง
// app.config.server.ts
import { provideServerRouting } from '@angular/ssr';
providers: [
provideServerRendering(),
provideServerRouting(serverRoutes)
]ควรสร้างล่วงหน้าเมื่อใด
เลือก Prerender สำหรับหน้าสาธารณะที่มีเนื้อหาคงที่ เช่น หน้าแรก เกี่ยวกับเรา และเอกสาร หน้าเหล่านี้จะถูกสร้างเป็น HTML เพียงครั้งเดียว ให้บริการจาก CDN ได้ทันที และไม่มีค่าใช้จ่ายฝั่งเซิร์ฟเวอร์ต่อคำขอ
ควรใช้เซิร์ฟเวอร์เมื่อใด
เลือก Server สำหรับหน้าที่เนื้อหาเปลี่ยนไปตามคำขอหรือผู้ใช้แต่ละราย แต่ยังต้องการ SEO หรือการแสดงผลครั้งแรกที่รวดเร็ว เช่น หน้าสินค้าที่แสดงจำนวนสินค้าในคลังแบบปัจจุบัน
ควรใช้ไคลเอ็นต์เมื่อใด
เลือก Client สำหรับหน้าส่วนตัวที่มีการโต้ตอบสูง ซึ่ง SEO และการแสดงผลครั้งแรกไม่สำคัญมากนัก เช่น แดชบอร์ดที่ต้องยืนยันตัวตน เซิร์ฟเวอร์จะส่งโครงหน้า และเบราว์เซอร์จะเป็นผู้แสดงผล
การสร้างล่วงหน้าสำหรับพารามิเตอร์แบบไดนามิก
สำหรับเส้นทางที่มีพารามิเตอร์ คุณต้องแจ้งตัวสร้างล่วงหน้าว่าควรสร้างพารามิเตอร์ใดบ้าง โดยส่งคืนรายการผ่าน getPrerenderParams
{
path: 'product/:id',
renderMode: RenderMode.Prerender,
async getPrerenderParams() {
const ids = await fetchProductIds();
return ids.map(id => ({ id }));
}
}ทางเลือกสำรองสำหรับการสร้างล่วงหน้า
พารามิเตอร์ที่ไม่ได้สร้างล่วงหน้าสามารถเปลี่ยนไปใช้การแสดงผลบนเซิร์ฟเวอร์หรือไคลเอ็นต์ขณะทำงานได้ ทำให้คุณสร้างล่วงหน้าสำหรับรายการยอดนิยม และแสดงผลรายการที่เหลือตามคำขอ
ส่วนหัวและรหัสสถานะรายเส้นทาง
เส้นทางเซิร์ฟเวอร์สามารถกำหนดส่วนหัวของคำตอบและรหัสสถานะได้ ซึ่งมีประโยชน์สำหรับนโยบายการแคช หรือการส่งคืน 404 จากตัวจัดการเส้นทางที่ไม่พบ
{
path: 'old-page',
renderMode: RenderMode.Server,
headers: { 'Cache-Control': 'no-store' }
}ผสมโหมดอย่างมีกลยุทธ์
แอปจริงมักผสมหลายโหมดเข้าด้วยกัน: สร้างหน้าการตลาดล่วงหน้า แสดงผลหน้าที่มีเนื้อหาไดนามิกและสำคัญต่อ SEO บนเซิร์ฟเวอร์ และแสดงผลแอปที่อยู่หลังการเข้าสู่ระบบบนไคลเอ็นต์ วิธีนี้ช่วยเพิ่มประสิทธิภาพทั้งด้านค่าใช้จ่ายและประสิทธิภาพการทำงาน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ตรวจสอบความรู้เกี่ยวกับโหมดการแสดงผลของคุณ
สรุปทบทวน
คุณได้กำหนดการแสดงผลรายเส้นทางด้วย ServerRoute[] และ provideServerRouting: ใช้ Prerender สำหรับหน้าสาธารณะที่มีเนื้อหาคงที่ ใช้ Server สำหรับหน้าไดนามิกที่สำคัญต่อ SEO และใช้ Client สำหรับหน้าส่วนตัวที่มีการโต้ตอบสูง รวมถึงกำหนดพารามิเตอร์การสร้างล่วงหน้าสำหรับเส้นทางไดนามิก
คำถามที่พบบ่อย
บทเรียน “เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Angular Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์”
กำหนดค่า prerender, SSR และ CSR แยกตามเส้นทาง คุณปฏิบัติ Angular Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Angular Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Angular Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Angular Academy นี้ได้ไหม
ได้ บทเรียน Angular Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุผลที่ต้องใช้การเรนเดอร์ฝั่งเซิร์ฟเวอร์
- การตั้งค่า Angular SSR
- เส้นทางเซิร์ฟเวอร์และโหมดการเรนเดอร์
- การถ่ายโอนสถานะไปยังไคลเอนต์