- บทความเกี่ยวกับประสบการณ์และบทเรียนที่ผู้เขียนได้พบระหว่างย้ายโค้ด 50,000 บรรทัดไปใช้ React Server Components (RSCs)
- RSCs คือ React component ที่ทำงานบนเซิร์ฟเวอร์แทนไคลเอนต์ และมอบข้อได้เปรียบสำคัญ 2 ประการเหนือการเรนเดอร์ฝั่งเซิร์ฟเวอร์ (SSR)
- ประการแรก RSCs ช่วยให้นักพัฒนาระบุได้ว่าโค้ดจะทำงานที่ใด ทำให้ขนาดบันเดิลเล็กลงและลดงานระหว่าง hydration
- ประการที่สอง server component สามารถดึงข้อมูลได้โดยตรงภายในคอมโพเนนต์และสตรีมไปยังไคลเอนต์ ทำให้การดึงข้อมูลใน React ง่ายและมีประสิทธิภาพมากขึ้น
- อย่างไรก็ตาม การใช้ RSCs ก็มีข้อจำกัดบางประการ เช่น CSS-in-JS ใช้งานใน server component ไม่ได้, React Context เข้าถึงได้เฉพาะใน client component เท่านั้น และความซับซ้อนในการจัดการตำแหน่งที่โค้ดทำงานอาจเป็นความท้าทาย
- ผู้เขียนเสนอแนวทาง 3 ขั้นตอนสำหรับการนำ RSCs มาใช้แบบค่อยเป็นค่อยไป:
- เพิ่ม directive
"use client" ที่ root ของแอป
- ย้าย directive ลงไปยังตำแหน่งที่ต่ำที่สุดเท่าที่เป็นไปได้ใน rendering tree
- นำ pattern ขั้นสูงมาใช้เมื่อเกิดปัญหาด้านประสิทธิภาพ
- แม้จะมีความซับซ้อนเพิ่มขึ้น แต่ผู้เขียนสรุปว่าข้อดีของ RSCs เช่น ขนาดบันเดิลที่เล็กลง การทำงานที่เร็วขึ้น และรูปแบบการโหลดข้อมูลขั้นสูง อาจคุ้มค่ากับต้นทุน หากทีมให้ความสำคัญกับประโยชน์ด้านประสิทธิภาพ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
appแบบใหม่ โดยเน้นถึงความยากในการทำความเข้าใจว่างานเกิดขึ้นที่ไหน (เซิร์ฟเวอร์หรือไคลเอนต์) และปัญหากับไลบรารี React เดิมที่ตั้งสมมติฐานว่าทำงานฝั่งไคลเอนต์