Элемент JS
Введение
Элемент JS используется для пользовательских элементов (не привязанных к полю) в форме. С помощью JavaScript и JSX можно отрисовать любое содержимое (например, подсказки, статистику, предпросмотр, кнопки и т. д.), а также работать с контекстом формы и записи. Подходит для сценариев вроде предпросмотра в реальном времени, обучающих подсказок и небольших интерактивных компонентов.

API контекста выполнения
ctx.element: объект-контейнер текущего элемента в дереве разметки (ElementProxy); поддерживаютсяinnerHTML,querySelector,addEventListenerи т. д.ctx.form: экземпляр формы Ant Design — операции вродеgetFieldValue/getFieldsValue/setFieldsValue/validateFieldsи т. д.ctx.blockModel: модель блока формы, к которому относится элемент; можно подписаться наformValuesChangeдля реакции на изменение значений (связывание с формой).ctx.record/ctx.collection: текущая запись и метаданные коллекции (доступно не во всех сценариях).ctx.requireAsync(url): асинхронная загрузка библиотеки в формате AMD или UMD по URL.ctx.importAsync(url): динамический импорт модуля в формате ES-модулей по URL.ctx.openView(viewUid, options): открывает настроенный элемент просмотра (всплывающее окно, выдвижной блок или страницу).ctx.message/ctx.notification: глобальные сообщения и уведомления.ctx.t()/ctx.i18n.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 или узел дерева документа в контейнер по умолчаниюctx.element. При нескольких вызовах снова используется корень и перезаписывается содержимое контейнера.
Редактор и сниппеты
- Сниппеты: открывает список встроенных сниппетов — можно искать и вставлять их в позицию курсора одним щелчком.
- Запуск: выполняет текущий код напрямую. Вывод выполнения показывается на панели Журнал внизу; поддерживаются вызовы
console.log,console.info,console.warn,console.errorи подсветка ошибок.

- Можно использовать ИИ-сотрудника для генерации или правки сценариев: ИИ-сотрудник · Nathan: инженер фронтенда
Типовое использование
1) Предпросмотр в реальном времени (чтение значений формы)
2) Просмотр (выдвижной блок)
3) Загрузка и рендер сторонних библиотек
Примечания
- Рекомендуется использовать доверенную сеть доставки контента для загрузки внешних библиотек и предусмотреть запасной сценарий на случай ошибок (например,
if (!lib) return;). - Рекомендуется использовать селекторы по атрибуту
classили[name=...]вместо фиксированныхid, чтобы избежать дублирования идентификаторов в разных блоках или модальных окнах. - Очистка событий: частые изменения значений формы могут вызывать множественные отрисовки. Перед привязкой обработчика очищайте подписки или исключайте дубликаты (например, вызывайте
removeпередadd, используйте{ once: true }или атрибутdataset, чтобы не допускать повторов).

