ข้ามไปยังเนื้อหาหลัก

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

ดูเพิ่มเติม