# Написание и запуск JS онлайн

В NocoBase **RunJS** предлагает легковесный способ расширения, идеально подходящий для **быстрых экспериментов и временной обработки логики**. Вам не потребуется создавать плагины или изменять исходный код — вы сможете персонализировать интерфейсы и взаимодействия с помощью JavaScript.

С его помощью вы можете напрямую вводить JS-код в конструкторе интерфейса, чтобы реализовать:

- Пользовательскую отрисовку содержимого (полей, блоков, колонок, элементов и т.д.)
- Пользовательскую логику взаимодействия (нажатия кнопок, связывание событий)
- Динамическое поведение с использованием контекстных данных

## Поддерживаемые сценарии

### JS-блок

Настройте отрисовку блока с помощью JS, получив полный контроль над его структурой и стилями. Это идеально подходит для отображения пользовательских компонентов, статистических диаграмм, стороннего контента и других высокогибких сценариев.

![20250916105031](https://static-docs.nocobase.com/20250916105031.png)

Документация: [JS-блок](/interface-builder/blocks/other-blocks/js-block)

### JS-действие

Настройте логику кликов кнопок действий с помощью JS, что позволит вам выполнять любые операции на фронтенде или запросы к API. Например: динамически рассчитывать значения, отправлять пользовательские данные, вызывать всплывающие окна и т.д.

![20250916105123](https://static-docs.nocobase.com/20250916105123.png)

Документация: [JS-действие](/interface-builder/actions/types/js-action)

### JS-поле

Настройте логику отрисовки полей с помощью JS. Вы можете динамически отображать различные стили, содержимое или состояния в зависимости от значений полей.

![20250916105354](https://static-docs.nocobase.com/20250916105354.png)

Документация: [JS-поле](/interface-builder/fields/specific/js-field)

### JS-элемент

Отрисовывайте независимые элементы с помощью JS без привязки к конкретным полям. Часто используется для отображения пользовательских информационных блоков.

![20250916104848](https://static-docs.nocobase.com/20250916104848.png)

Документация: [JS-элемент](/interface-builder/fields/specific/js-item)

### JS-колонка таблицы

Настройте отрисовку колонок таблицы с помощью JS. Вы можете реализовать сложную логику отображения ячеек, такую как индикаторы выполнения, метки статуса и т.д.

![20250916105443](https://static-docs.nocobase.com/20250916105443.png)

Документация: [JS-колонка таблицы](/interface-builder/fields/specific/js-column)

### Правила связывания

Управляйте логикой связывания между полями в формах или на страницах с помощью JS. Например: когда одно поле изменяется, динамически изменяйте значение или видимость другого поля.

![20251029114532](https://static-docs.nocobase.com/20251029114532.png)

Документация: [Правила связывания](/interface-builder/linkage-rule)

### Поток событий

Настройте условия запуска и логику выполнения потока событий с помощью JS, чтобы создавать более сложные цепочки взаимодействия на фронтенде.

![](https://static-docs.nocobase.com/20251031092755.png)

Документация: [Поток событий](/interface-builder/event-flow)