Эта документация была автоматически переведена ИИ.
JS Block — это высокогибкий пользовательский блок рендеринга, который позволяет напрямую писать JavaScript-скрипты для генерации интерфейсов, привязки событий, вызова API данных или интеграции сторонних библиотек. Он идеально подходит для персонализированной визуализации, временных экспериментов и легковесных расширений, которые сложно реализовать с помощью встроенных блоков.
Контекст выполнения 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: Встроенные общие библиотеки React, ReactDOM, Ant Design, Ant Design Icons и dayjs для рендеринга JSX и работы со временем. (ctx.React / ctx.ReactDOM / ctx.antd сохранены для совместимости.);ctx.render(vnode): Рендерит элемент React, HTML-строку или DOM-узел в контейнер по умолчанию ctx.element; многократные вызовы будут повторно использовать один и тот же React Root и перезаписывать существующее содержимое контейнера.Вы можете добавить JS Block на страницу или во всплывающее окно.

Редактор скриптов JS Block поддерживает подсветку синтаксиса, подсказки об ошибках и встроенные фрагменты кода (сниппеты), позволяя быстро вставлять распространенные примеры, такие как рендеринг диаграмм, привязка событий к кнопкам, загрузка внешних библиотек, рендеринг компонентов React/Vue, временные шкалы, информационные карточки и т. д.
Snippets: Открывает список встроенных фрагментов кода. Вы можете искать и вставлять выбранный фрагмент в текущую позицию курсора в редакторе кода одним щелчком мыши.Run: Непосредственно запускает код в текущем редакторе и выводит журналы выполнения на нижнюю панель Logs. Поддерживается отображение console.log/info/warn/error, а ошибки будут выделены с указанием конкретной строки и столбца.
Кроме того, вы можете напрямую вызвать AI-помощника «Фронтенд-инженер · Натан» из верхнего правого угла редактора. Натан поможет вам написать или изменить скрипты на основе текущего контекста. Затем вы можете одним щелчком мыши «Apply to editor» (Применить в редакторе) и запустить код, чтобы увидеть результат. Подробнее см. в разделе:
ctx.element (ElementProxy) для скрипта, который влияет только на текущий блок и не мешает другим областям страницы.window/document/navigator используют безопасные прокси-объекты, позволяя использовать общие API, но ограничивая рискованные действия.class или атрибуту [name=...]. Избегайте использования фиксированных id, чтобы предотвратить конфликты стилей или событий из-за повторяющихся id при использовании нескольких блоков или всплывающих окон.