Этот документ был переведён с помощью ИИ. Для получения точной информации обратитесь к английской версии.
JS Block — это высокогибкий «блок пользовательского рендеринга», который поддерживает написание JavaScript-скриптов напрямую для генерации интерфейсов, привязки событий, вызова интерфейсов данных или интеграции сторонних библиотек. Он подходит для сценариев индивидуальной визуализации, временных экспериментов и легковесных расширений, которые трудно реализовать с помощью встроенных блоков.
В контекст выполнения JS Block внедрены часто используемые возможности, которые можно использовать напрямую:
ctx.element: DOM-контейнер блока (безопасная обертка, ElementProxy), поддерживающий innerHTML, querySelector, addEventListener и т. д.;ctx.requireAsync(url): Асинхронная загрузка библиотек AMD/UMD по URL;ctx.importAsync(url): Динамический импорт ESM-модулей по URL;ctx.openView: Открытие настроенного представления (всплывающее окно / выдвижная панель / страница);ctx.useResource(...) + ctx.resource: Доступ к данным через ресурсы;ctx.i18n.t() / ctx.t(): Встроенные возможности интернационализации;ctx.onRefReady(ctx.ref, cb): Рендеринг после готовности контейнера во избежание проблем с таймингом;ctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs / ctx.libs.lodash / ctx.libs.math / ctx.libs.formula: Встроенные библиотеки React / ReactDOM / Ant Design / иконки Ant Design / dayjs / lodash / math.js / formula.js и др. для JSX-рендеринга, обработки времени, манипуляций с данными и математических вычислений. (ctx.React / ctx.ReactDOM / ctx.antd по-прежнему сохранены для совместимости.)ctx.render(vnode): Рендерит React-элемент, HTML-строку или DOM-узел в контейнер по умолчанию ctx.element; повторные вызовы используют тот же React Root и перезаписывают текущее содержимое контейнера.
Редактор скриптов JS Block поддерживает подсветку синтаксиса, подсказки об ошибках и встроенные фрагменты кода (Snippets), позволяя быстро вставлять распространенные примеры, такие как: рендеринг графиков, привязка событий к кнопкам, загрузка внешних библиотек, рендеринг компонентов React/Vue, временные шкалы, карточки информации и т. д.
Snippets: Открывает список встроенных фрагментов кода, позволяет искать и вставлять выбранный фрагмент в текущую позицию курсора одним кликом.Run: Запускает код в редакторе и выводит логи выполнения в панель Logs внизу. Поддерживает отображение console.log/info/warn/error, ошибки подсвечиваются с возможностью перехода к конкретной строке и столбцу.
Кроме того, в правом верхнем углу редактора можно вызвать AI-сотрудника «Фронтенд-инженер · Nathan», чтобы он помог вам написать или изменить скрипт на основе текущего контекста, применить его в редакторе кнопкой «Apply to editor» и запустить для проверки результата. Подробнее:
ctx.element (ElementProxy) для скрипта, который влияет только на текущий блок и не затрагивает другие области страницы.window/document/navigator используют безопасные прокси-объекты; общие API доступны, рискованные действия ограничены.class или атрибутам [name=...]; избегайте использования фиксированных id, чтобы предотвратить конфликты стилей или событий из-за дублирования id в нескольких блоках или всплывающих окнах.