Routing
WIP
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
สถานการณ์
URL ของหน้าต่างๆ ถูก Hardcode ไว้ใน Layers ที่ต่ำกว่า Pages
entities/post/card
<Card>
<Card.Title
href={`/post/${data.id}`}
title={data.name}
/>
...
</Card>
ปัญหา
URL ไม่ได้รวมศูนย์อยู่ใน Page layer ซึ่งเป็นที่ที่มันควรอยู่ตามขอบเขตความรับผิดชอบ
ถ้าคุณเพิกเฉย
เมื่อต้องเปลี่ยน URL คุณจะต้องคอยจำว่า URL เหล่านี้ (และ Logic ของ URLs/Redirects) อาจจะอยู่ในทุก Layers ยกเว้น Pages
และมันยังหมายความว่าตอนนี้แม้แต่ Product card ธรรมดาๆ ก็รับภาระส่วนหนึ่งมาจาก Pages ซึ่งทำให้ Logic ของโปรเจกต์กระจัดกระจาย
ทางแก้
กำหนดวิธีการทำงานกับ URLs/Redirects จากระดับ Page ขึ้นไป
ส่งต่อไปยัง Layers ข้างล่างผ่าน Composition/Props/Factories