Интеграция в Astro
Сначала прочитайте установку и базовую настройку. В этом примере Astro монтирует Univer Docs в контейнер с явно заданной высотой.
Используйте обычный <script> для прямой инициализации редактора в браузере. Инициализируйте при первой загрузке и на astro:page-load, освобождайте экземпляр на astro:before-swap при использовании ClientRouter. Не импортируйте редактор во frontmatter Astro. См. события навигации Astro.
Шаги интеграции
- Инициализируйте Univer в
mount()/astro:page-load. - Освободите Univer в
astro:before-swap.
Пример кода
Astro
<div id="univer-docs" style="height: 600px"></div><script> import type { Univer } from '@univerjs/presets' import { UniverDocsCorePreset } from '@univerjs/preset-docs-core' import UniverPresetDocsCoreruRU from '@univerjs/preset-docs-core/locales/ru-RU' import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets' import '@univerjs/preset-docs-core/lib/index.css' let univerInstance: Univer | undefined function mount() { const container = document.getElementById('univer-docs') if (!container || univerInstance) return const { univer, univerAPI } = createUniver({ locale: LocaleType.RU_RU, locales: { [LocaleType.RU_RU]: mergeLocales(UniverPresetDocsCoreruRU) }, presets: [UniverDocsCorePreset({ container })], }) univerAPI.createDocument({}) univerInstance = univer } function dispose() { univerInstance?.dispose() univerInstance = undefined } mount() document.addEventListener('astro:page-load', mount) document.addEventListener('astro:before-swap', dispose)</script>Насколько полезно это руководство?