ข้ามไปยังเนื้อหาหลัก
THE SURE LAB
วิศวกรรมซอฟต์แวร์

React Server Components เปลี่ยนอะไรจริง ๆ

อ่าน 3 นาที

มองข้ามคำโฆษณา แล้วดูว่าอะไรเปลี่ยนไปในทางปฏิบัติเมื่อเขียนเว็บด้วยแนวคิดนี้

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

ผลพลอยได้คือขนาดของ JavaScript ที่ส่งไปยังเบราว์เซอร์ลดลง เพราะโค้ดที่ทำงานบนเซิร์ฟเวอร์อย่างเดียวไม่ต้องถูกรวมเข้าไปในบันเดิลเลย ไลบรารีสำหรับจัดรูปแบบวันที่หรือแปลง Markdown จึงไม่กินโควตาของผู้ใช้

สิ่งที่ต้องระวังคือเส้นแบ่งระหว่างเซิร์ฟเวอร์กับไคลเอนต์ การเผลอใส่ use client ไว้ที่ระดับบนสุดของหน้าจะทำให้ทุกอย่างใต้ลงไปกลายเป็นโค้ดฝั่งไคลเอนต์ทั้งหมด ซึ่งย้อนกลับไปสู่สภาพเดิมโดยไม่รู้ตัว

แนวทางที่ใช้ได้ผลคือให้หน้าและเลย์เอาต์เป็นเซิร์ฟเวอร์คอมโพเนนต์เสมอ แล้วแยกเฉพาะส่วนที่ต้องการสถานะหรือ event ออกมาเป็นคอมโพเนนต์เล็ก ๆ ที่ประกาศ use client เฉพาะตัวมันเอง

อีกเรื่องที่มักสับสนคือความลับ ตัวแปรสภาพแวดล้อมที่ไม่มีคำนำหน้าสาธารณะจะไม่ถูกส่งไปยังเบราว์เซอร์ แต่ถ้าเผลออ้างถึงมันในไฟล์ที่ประกาศ use client มันจะถูกฝังลงในบันเดิลทันที

สรุปคือแนวคิดนี้ไม่ได้ทำให้เว็บเร็วขึ้นเองโดยอัตโนมัติ แต่มันย้ายการตัดสินใจเรื่องประสิทธิภาพมาไว้ในมือของผู้เขียนโค้ดอย่างชัดเจนขึ้นมาก

แชร์บทความนี้FacebookLINEX