ยุติการสนับสนุน `create-react-app`
(react.dev)ในช่วงหลายปีที่ผ่านมา create-react-app เป็นเครื่องมือที่เหมาะสำหรับการตั้งค่าแอปพลิเคชัน React พื้นฐาน แต่เมื่อเวลาผ่านไปก็พบข้อจำกัดหลายประการ จึงได้ยุติการสนับสนุนแล้ว
ข้อจำกัดมีดังนี้:
- Routing: แม้จะจัดการด้วย
useStateได้โดยไม่ต้องมีเฟรมเวิร์ก แต่ในกรณีนี้ URL จะไม่เปลี่ยน ทำให้สุดท้ายชี้ไปที่ URL เดิมเสมอ - Data Fetching: ที่ผ่านมามักเรียกใช้ฟังก์ชัน
fetchภายในuseEffectแต่แนวทางนี้ทำให้เกิดปรากฏการณ์ network waterfall ที่โปรเซสอื่นต้องรออยู่เฉย ๆ จนกว่าจะดึงข้อมูลนั้นเสร็จ - ขาดความสามารถด้าน code splitting: แอปพลิเคชัน React แบบล้วน ๆ หากไม่ได้ใช้วิธีแบ่งโค้ดเฉพาะ เมื่อสร้างด้วย
create-react-appก็จะได้ออกมาเป็นเพียงบันเดิลเดียว - นอกจากนี้ยังมีอีกหลายเรื่อง เช่น การเข้าถึง และสตรีมมิง เป็นต้น
ดังนั้นหากต้องการสร้างแอปพลิเคชัน React โปรดใช้ความช่วยเหลือจากเฟรมเวิร์กอื่น เช่น Next.js, Remix ตามที่ระบุไว้ในเอกสารนี้
6 ความคิดเห็น
ทั้งที่มีข้อเสนอให้เปลี่ยนไปเป็นการแนะนำ Vite อย่างเป็นทางการแล้ว แต่ก็ยังดื้อดึงด้วยเหตุผลที่เหลวไหล...
CRA หายไปจากคู่มือพัฒนา React มานานแล้ว ตอนนี้ก็ยุติการซัพพอร์ตอย่างเป็นทางการจริง ๆ สักที
ก็น่าเสียดายที่ระบบนิเวศกำลังกลายเป็นแบบที่ต้องพึ่งพาเฟรมเวิร์กอย่าง Next หรือ Remix
คนเสนอแนะกันมาตลอดว่าถ้าจะไม่ดูแลแล้วก็ควรปิดรีโพซิทอรีและระบุทางเลือกอื่นไว้ใน README กับบน npm แต่พวกเขากลับเมินเฉยมานานมาก ดีใจที่ในที่สุดมันก็หายไปเสียที
ก็เป็นของเลิกใช้ที่ไม่มีเหตุผลให้ใช้อีกต่อไปอยู่แล้ว
การที่ CRA รวมทุกอย่างไว้เป็นบันเดิลเดียวก็ถือว่าโอเคนะ...
CRA ก็มีข้อดีในแบบของมันอยู่แท้ ๆ เลยรู้สึกว่า ถึงขั้นต้องยุติการซัพพอร์ตกันเลยเหรอ