Skip to content

NovaApp

Поля, методы и lifecycle-контракты NovaApp.

Практическая схема

  • Документация: NovaCore.
  • Раздел: Справочник.
  • Тема страницы: NovaApp.
  • Переключатель TypeScript / DSL находится в панели навигации; вкладка Код в примере показывает файлы выбранного подхода.
app · @endge/nova

NovaAppCreateOptions

Контракт создания NovaApp: canvas target, размер, input, renderer, scheduler и debug-настройки.

interface NovaAppCreateOptions<E extends EventList = Record<string, any>>
Target и size Минимальный набор, без которого runtime не создается.
ПолеТипОписание
targetrequiredHTMLCanvasElementВидимый canvas, к которому NovaApp привязывает основной renderer и input listeners.
size.widthrequirednumberЛогическая ширина runtime. Canvas pixel size рассчитывается через DPR.
size.heightrequirednumberЛогическая высота runtime. Surfaces наследуют этот размер при создании и resize.
size.dprnumberwindow.devicePixelRatioЯвный DPR, если приложение хочет управлять плотностью canvas самостоятельно.
size.maxDprnumberВерхняя граница DPR для контроля памяти и backbuffer size.
Input Pointer и keyboard можно отключать или ограничивать scope.
ПолеТипОписание
input.pointer.enabledbooleantrueПодключает pointer events к canvas.
input.pointer.capturebooleantrueАвтоматически ставит pointer capture на target node после mousedown.
input.keyboard.scope'focused' | 'active' | 'hovered' | 'global' | 'manual''focused'Определяет, где Nova слушает keyboard events и когда их обрабатывает.
input.keyboard.preventDefault'never' | 'handled' | 'always''handled'Контролирует preventDefault для keyboard events.
Renderer, scheduler и debug
ПолеТипОписание
renderer.mainRendererType.Web2DWeb2DApp-level backend для единственного visible canvas.
renderer.webglWebGLContextAttributesАтрибуты WebGL-context для app-level WebGL backend.
scheduler.typeRaphSchedulerTypeAnimationFrameScheduler reactive runtime.
scheduler.loopbooleanfalseЗапускает постоянный loop сразу после init.
soundNovaSoundOptionsНастройки app-level Sound Engine: mute, volume, maxVoices, unlock и format preference.
debug.telemetrybooleanВключает сбор telemetry snapshots для renderer diagnostics.
  • Создавайте NovaApp только после mount canvas в DOM.
  • Для Vue-страниц destroy должен вызываться в cleanup lifecycle.

Как применять

Используйте страницу как короткую рабочую заметку: сначала определите границу ответственности, затем откройте пример и сравните TypeScript-реализацию с DSL-описанием. Runtime-код остается в Nova-слое, а Vue отвечает только за mount, layout shell и cleanup.