Anggap halaman /about itu punya subhalaman /about/team. Lo bisa bikin route-nya kayak gini:
Kalo lo akses /about/team, lo bakal liat tampilan yang sama kayak /about. Ini karena route /about dianggap sebagai parent dari route /about/team. Untuk itu, lo perlu nge-render component <Outlet /> di dalam component /about supaya subhalaman tersebut bisa ditampilin.
Secara teknis, route module /about/team ini dibungkus di dalam route module /about. Kayak gini kira-kira:
Ini berarti route module /about juga bisa kita dijadikan sebagai layout untuk subhalaman /about/team dan subhalaman lainnya yang ada di bawahnya. Ini bermanfaat banget ketika lo mau bikin semacam sub-menu berupa sidebar atau tab yang ada di dalam halaman /about.
Ini juga berarti, dalam konteks ini, lo nggak perlu naruh konten halaman /about di dalam file routes/about.tsx. File tersebut bisa dijadiin sebagai layout aja, dan lo bisa bikin file baru yang khusus buat konten halaman /about di dalam file app/routes/about-index.tsx, misalnya.
Jadinya kayak gini:
Untuk isi file app/routes/about.tsx, lo bisa bikin kayak gini:
Sedangkan untuk file app/routes/about-index.tsx, lo bisa bikin kayak gini:
Dan untuk file app/routes/about-team.tsx, lo bisa bikin kayak gini:
In case lo nggak mau bikin nested route dengan struktur kayak gini, lo bisa bikin pake cara yang lebih simpel:
Kalo kayak gini, file app/routes/about.tsx nggak perlu pake <Outlet /> lagi, karena nggak ada subhalaman yang di-render di dalamnya dan kedua route tersebut nggak punya parent-child relationship. That's perfectly fine kalo lo butuhnya kayak gini.
If it works, it works!

Jadilah yang pertama untuk berdiskusi!