Mode autoload — NexaRoute
Memuat modul template saat navigasi tanpa mendaftarkan setiap nama di
App.js. Pelajari
mode manual terlebih dahulu.
1. Aktivasi
Tambahkan token "autoload" di array route (boleh digabung dengan rute eksplisit):
route: ["beranda", "autoload"],
beranda terdaftar manual; about, blog,
data, dll. cukup lewat file template + tautan. Tidak ada
routes.manifest.json, scan PHP, atau daftar nama di file lain —
logika di assets/modules/Route/NexaRoute.js.
2. Syarat modul
| Rute URL | File (relatif appRoot) |
Export function |
|---|---|---|
/data |
templates/data.js |
data |
/about |
templates/about.js |
about |
Di dalam export: panggil route.register(page, handler).
Parameter page sama dengan path dasar modul (mis. "data").
export async function data(page, route) {
route.register(page, async (routeName, container, routeMeta, style, nav = {}) => {
container.innerHTML = `<p>Route: ${routeName}</p>`;
});
}3. URL bertingkat + nav.subRoute
Autoload tidak membuat satu file per segmen URL.
NexaRoute mencari file template terpanjang yang ada;
sisa path menjadi nav.subRoute.
| URL | File | Export | nav.subRoute |
|---|---|---|---|
/page/contoh/v1/token/dll |
templates/page/contoh.js |
page_contoh |
v1/token/dll |
/docs/panduan/bab-1 |
templates/docs/panduan.js |
docs_panduan |
bab-1 |
- File:
templates/{segment1}/{segment2}.jsuntuk dasarsegment1/segment2. - Export: slash → underscore (
page/contoh→page_contoh). - Handler:
routeName= path penuh;nav.subRoute= sisa setelah path dasar.
export async function page_contoh(page, route) {
route.register(page, async (routeName, container, routeMeta, style, nav = {}) => {
const sub = nav.subRoute || "";
container.innerHTML = `<p>Rute: ${routeName}</p><p>Sub: ${sub}</p>`;
});
}templates/page/contoh/v1/token/dll.js.
4. Menambah halaman baru
- Pastikan
routememuat"autoload". - Buat
templates/kontak.jsdenganexport async function kontak(page, route) { … }. - Tambah tautan
<a href="/kontak">— tidak perlu mengubahApp.js.
Lihat juga: Route di App.js, Sub-route dinamis, Panduan SPA.