- App Router (Stable)
- Turbopack (Beta)
- Turbopack ที่เพิ่มเข้ามาในเวอร์ชัน 13 ถูกปรับเป็นสถานะ Beta
- เพื่อการทำให้เสถียรและรับฟีดแบ็ก จึงมีการทำ dogfooding กับ Vercel.com และลูกค้า Vercel ที่ใช้งาน Next.js ในระดับขนาดใหญ่
- Server Actions (Alpha)
- ใน ecosystem ของ React มีความเห็นที่หลากหลายเกี่ยวกับการจัดการสถานะของฟอร์ม
- เอกสารทางการของ React แนะนำ "uncontrolled components"
- เพิ่มความสามารถในการกำหนด action function ให้กับ form บนเซิร์ฟเวอร์ของ Next.js (Server Actions)
- ใน Server Component สามารถกำหนดฟังก์ชันผ่าน
actionซึ่งเป็นหนึ่งใน props ของ form ได้ - ฟังก์ชันดังกล่าวจะทำงานเป็น server function เมื่อใส่
'use server'; - สามารถใช้ server function สำหรับการย้ายหน้า การแคช และอื่น ๆ ผ่านแพ็กเกจ next ได้
3 ความคิดเห็น
ในเอกสารทางการของ React ไม่ได้แนะนำคอมโพเนนต์แบบควบคุมไม่ใช่หรือ?
ถ้าทำเป็น controlled component ก็ต้องใช้สคริปต์
และถ้าจะทำแบบนั้นก็ต้องสร้างเป็น client component แต่แบบนี้จะเสียเปรียบในแง่แคชหรือเรื่องทำนองนั้น
server actionที่เพิ่มเข้ามาครั้งนี้ ดูเหมือนว่าจะทำให้ประกาศ'use server'ในฟังก์ชันภายในคอมโพเนนต์ได้เลยน่าจะทำให้ตอนทำ mutation ก็ยังคงใช้ server component ต่อไปได้
Next.js รอบนี้ยิ่งดูทั้งการพยายามลดการใช้สคริปต์ให้เหลือน้อยที่สุด และกลยุทธ์โดยรวมอะไรพวกนี้แล้ว
ยิ่งคล้าย Remix เลยนะ
การที่โค้ดฝั่งเซิร์ฟเวอร์กับโค้ดฝั่งไคลเอนต์ปนกันอยู่
ทำให้นึกถึง PHP สมัยก่อนเลย
แปลได้ไม่ค่อยดีเลยเผลอแปลความจนแปลกไป นี่คือย่อหน้าแรกของต้นฉบับเกี่ยวกับ Server Actions
ระบบนิเวศของ React ได้เห็นทั้งนวัตกรรมจำนวนมากและการสำรวจแนวคิดต่าง ๆ เกี่ยวกับฟอร์ม การจัดการสถานะของฟอร์ม รวมถึงการแคชและการตรวจสอบข้อมูลใหม่ เมื่อเวลาผ่านไป React ก็เริ่มมีแนวทางที่ชัดเจนมากขึ้นต่อแพตเทิร์นบางอย่างเหล่านี้ ตัวอย่างเช่น มีการแนะนำให้ใช้ “uncontrolled components” สำหรับสถานะของฟอร์ม