Questo documento è stato tradotto dall'IA. Per informazioni accurate, consultare la versione inglese.
JS Block è un "blocco di rendering personalizzato" altamente flessibile, che supporta la scrittura diretta di script JavaScript per generare interfacce, associare eventi, chiamare interfacce dati o integrare librerie di terze parti. È adatto per visualizzazioni personalizzate, esperimenti temporanei ed estensioni leggere che i blocchi integrati difficilmente coprono.
Nel contesto di runtime del JS Block sono state iniettate le funzionalità comuni, utilizzabili direttamente:
ctx.element: il contenitore DOM del blocco (incapsulato in modo sicuro come ElementProxy), supporta innerHTML, querySelector, addEventListener, ecc.;ctx.requireAsync(url): carica in modo asincrono una libreria AMD/UMD tramite URL;ctx.importAsync(url): importa dinamicamente un modulo ESM tramite URL;ctx.openView: apre una vista configurata (popup/drawer/pagina);ctx.useResource(...) + ctx.resource: accede ai dati come risorsa;ctx.i18n.t() / ctx.t(): funzionalità di internazionalizzazione integrata;ctx.onRefReady(ctx.ref, cb): esegue il rendering dopo che il contenitore è pronto, per evitare problemi di tempistica;ctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs / ctx.libs.lodash / ctx.libs.math / ctx.libs.formula: librerie integrate come React / ReactDOM / Ant Design / icone di Ant Design / dayjs / lodash / math.js / formula.js per il rendering JSX, la gestione del tempo, la manipolazione dei dati e le operazioni matematiche. (ctx.React / ctx.ReactDOM / ctx.antd sono mantenuti per compatibilità.)ctx.render(vnode): esegue il rendering di un elemento React, di una stringa HTML o di un nodo DOM nel contenitore predefinito ctx.element; chiamate multiple riutilizzeranno la stessa React Root e sovrascriveranno il contenuto esistente del contenitore.
L'editor di script del JS Block supporta l'evidenziazione della sintassi, i suggerimenti di errore e i frammenti di codice integrati (Snippets), che permettono di inserire rapidamente esempi comuni, come: rendering di grafici, associazione di eventi a pulsanti, caricamento di librerie esterne, rendering di componenti React/Vue, timeline, schede informative, ecc.
Snippets: apre l'elenco dei frammenti di codice integrati, permette di cercare e inserire con un clic il frammento selezionato nella posizione corrente del cursore nell'area di modifica del codice.Run: esegue direttamente il codice nell'editor corrente e ne emette i log di esecuzione nel pannello Logs in basso. Supporta la visualizzazione di console.log/info/warn/error, gli errori vengono evidenziati e possono essere localizzati alla riga e colonna specifiche.
Inoltre, dall'angolo in alto a destra dell'editor, può richiamare direttamente il dipendente AI "Ingegnere Frontend · Nathan", per fargli scrivere o modificare script basati sul contesto attuale; dopo aver applicato le modifiche all'editor con un clic tramite "Apply to editor", può eseguire il codice per vederne l'effetto. Per i dettagli, consulti:
ctx.element (ElementProxy) per lo script, che influisce solo sul blocco corrente e non interferisce con altre aree della pagina.window/document/navigator utilizzano oggetti proxy sicuri, le API comuni sono disponibili, i comportamenti a rischio sono limitati.class o [name=...]; eviti di usare id fissi, per evitare che la comparsa di id duplicati in più blocchi/popup causi conflitti di stile o di eventi.