Dokumen ini diterjemahkan oleh AI. Untuk informasi yang akurat, silakan merujuk ke versi bahasa Inggris.
JS Block adalah "blok rendering kustom" yang sangat fleksibel, mendukung penulisan skrip JavaScript secara langsung untuk menghasilkan antarmuka, mengikat event, memanggil antarmuka data, atau mengintegrasikan pustaka pihak ketiga. Cocok untuk visualisasi personal, eksperimen sementara, dan skenario perluasan ringan yang sulit dicakup oleh blok bawaan.
Konteks runtime JS Block telah dilengkapi dengan kemampuan umum yang dapat langsung digunakan:
ctx.element: Kontainer DOM blok (ElementProxy yang telah dibungkus dengan aman), mendukung innerHTML, querySelector, addEventListener, dll.;ctx.requireAsync(url): Memuat pustaka AMD/UMD secara asinkron berdasarkan URL;ctx.importAsync(url): Mengimpor modul ESM secara dinamis berdasarkan URL;ctx.openView: Membuka tampilan yang telah dikonfigurasi (pop-up/laci/halaman);ctx.useResource(...) + ctx.resource: Mengakses data sebagai sumber daya;ctx.i18n.t() / ctx.t(): Kemampuan internasionalisasi bawaan;ctx.onRefReady(ctx.ref, cb): Melakukan rendering setelah kontainer siap untuk menghindari masalah urutan waktu;ctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs / ctx.libs.lodash / ctx.libs.math / ctx.libs.formula: Pustaka umum bawaan seperti React / ReactDOM / Ant Design / Ikon Ant Design / dayjs / lodash / math.js / formula.js, digunakan untuk rendering JSX, pemrosesan waktu, operasi data, dan perhitungan matematika. (ctx.React / ctx.ReactDOM / ctx.antd tetap dipertahankan untuk kompatibilitas.)ctx.render(vnode): Merender elemen React, string HTML, atau node DOM ke kontainer default ctx.element; pemanggilan berulang akan menggunakan kembali React Root yang sama dan menimpa konten kontainer yang ada.
Editor skrip JS Block mendukung penyorotan sintaksis, petunjuk kesalahan, dan cuplikan kode bawaan (Snippets), untuk menyisipkan contoh umum dengan cepat seperti: merender bagan, mengikat event tombol, memuat pustaka eksternal, merender komponen React/Vue, lini masa, kartu informasi, dll.
Snippets: Membuka daftar cuplikan kode bawaan, dapat mencari dan menyisipkan cuplikan yang dipilih ke posisi kursor saat ini di area edit kode dengan satu klik.Run: Menjalankan kode dalam editor saat ini secara langsung, dan mengeluarkan log eksekusi ke panel Logs di bagian bawah. Mendukung tampilan console.log/info/warn/error, kesalahan akan disorot dan dapat diarahkan ke baris serta kolom tertentu.
Selain itu, sudut kanan atas editor dapat langsung memanggil karyawan AI "Frontend Engineer · Nathan", memintanya membantu menulis atau mengubah skrip berdasarkan konteks saat ini, lalu klik "Apply to editor" untuk menerapkannya ke editor sebelum dijalankan untuk melihat hasilnya. Lihat detailnya:
ctx.element (ElementProxy) untuk skrip, hanya memengaruhi blok saat ini, tidak mengganggu area lain di halaman.window/document/navigator menggunakan objek proksi yang aman, API umum tersedia, perilaku berisiko dibatasi.class atau [name=...]; hindari penggunaan id tetap untuk mencegah duplikasi id di beberapa blok/pop-up yang menyebabkan konflik gaya atau event.