1. Entry: index.html
— HTML & script
Base href, memuat nxdom.js (biasanya lewat
import di App.js), API global
NX dan nx, kontainer route,
dan navigasi SPA.
<base href="/">
Menetapkan root URL dokumen. Link seperti /beranda,
/contact/data di-resolve ke origin yang sama (bukan relatif ke
subfolder). Jika aplikasi di-deploy di subpath (misalnya
https://domain.com/app/), sesuaikan href ke
subpath tersebut.
Memuat nxdom.js
Pada pola yang dipakai proyek ini, nxdom.js tidak perlu
tag <script> terpisah di HTML: modul dimuat lewat
import di baris pertama
App.js. Eksekusi modul ES menjalankan dependency import
sebelum sisa isi berkas, sehingga NX (dan global terkait)
sudah ada saat new NX.Tatiye({ … }).run() (setara
new NX.Page({ … })) dipanggil.
import "./assets/modules/nxdom.js";
// … konfigurasi, lalu misalnya:
const req = new NX.Tatiye({ /* konfigurasi sama seperti Page */ }).run();
Path ./assets/modules/nxdom.js relatif terhadap lokasi
App.js (biasanya root proyek). Sesuaikan jika Anda memindahkan
berkas. Pastikan server development menyajikan
/modules/nxdom.js dan /App.js dengan tipe
MIME modul yang benar.
Alternatif — dua tag di HTML: Anda bisa memuat
nxdom.js dari index.html lalu
App.js (tanpa baris import nxdom di
App.js jika sudah dimuat global lewat script pertama):
<script type="module" src="/modules/nxdom.js"></script>
<script type="module" src="/App.js"></script>
Dalam pola ini, urutan harus nxdom.js dulu, baru
App.js.
NX dan nx — API global (nxdom.js)
NX
-
NX adalah objek API utama Nexa:
method utilitas,
Page/Tatiye, selektor (element,$), manajemen data global (setGlobal,getGlobal, …), dan lainnya (lihatNXBasedi file yang sama). -
Setelah diisi, NX dibungkus Proxy:
set— nilai yang bukanfunction, bukan nama yang diawali_, dan bukanconstructor/prototype, juga ditulis kewindow[namaProperti](sinkron data ke global untuk kompatibilitas kode lama).get— baca dulu dari NX; jika tidak ada, fallback kewindow(asal nilainya bukanundefined). -
Inisiasi aplikasi memakai nama ini secara eksplisit, misalnya
new NX.Tatiye({ … }).run()(setaranew NX.Page({ … })) diApp.js.
nx (huruf kecil)
-
nx adalah shorthand terpisah, bukan
referensi yang sama dengan NX:
Inisialisasi — objek salinan satu kali properti yang
terlihat dari NX saat itu, ditambah
_globaldan_ui. -
Proxy kedua — saat Anda menetapkan
nx.namaFungsi = function () { … }, handlersetjuga menyalin fungsi kewindow[namaFungsi]. Ini mendukung callback berbasis nama string (modal, form, atribut HTML). -
Resolusi di komponen — misalnya NexaForm
(
onclick.send) mencari nama fungsi dengan urutan:window→ NX → nx →nx._global.
Cuplikan handler (route /form) — pola ini selaras dengan
modal/route lain:
nx.nexaFormDemoSubmit = async function (formId, formData, setDataBy) {
console.log("[nexaFormDemoSubmit]", { formId, formData, setDataBy });
const out = document.getElementById("nexaFormDemoOutput");
if (out) {
out.textContent = JSON.stringify({ formData, setDataBy }, null, 2);
}
};
Detail form, validasi, dan onclick.send: lihat
docs/form.md di repositori modul.
Kontainer route
Dengan nxdom.js di-import dari App.js, HTML cukup
memuat satu modul entri; pastikan
App.js tetap memulai dengan
import "./assets/modules/nxdom.js"; (lihat
Memuat nxdom.js).
<div id="main"></div>
<script type="module" src="/App.js"></script>
ID main harus cocok dengan containerId di
App.js (mis. "main").
Navigasi
Anchor dengan href ke path SPA (mis. /beranda,
/blog) dipakai NexaRoute untuk navigasi tanpa reload penuh —
selaras dengan daftar route di App.js.