В SvelteKit компоненты импортируются напрямую из модулей
UI-библиотек, что позволяет использовать их в любом .svelte
файле приложения. Синтаксис полностью соответствует стандарту ES
Modules:
Особенности:
await import(), что полезно для ленивой
загрузки крупных компонентов:
В SvelteKit регистрация компонентов отличается от Vue или Angular: не требуется глобальная регистрация. Каждый компонент используется локально там, где он импортирован. Это упрощает структуру приложения и предотвращает конфликты имен.
Примеры локальной регистрации:
Для сложных UI-компонентов, таких как модальные окна или таблицы, регистрация может включать настройку контекста или prop-ов, передаваемых через родительский компонент:
{#if showModal}
showModal = false}>
Содержимое модального окна
{/if}
Компоненты SvelteKit UI libraries обычно поддерживают набор стандартных props:
class и style — для кастомизации внешнего
вида.disabled, loading, size — для
кнопок и форм.title, icon, on:close — для
модальных окон.События подключаются через синтаксис on:event:
Для сложных событий используется передача callback-функций
через props или использование bind: для
двусторонней связи:
Введено: {value}
Для больших проектов рекомендуется структурировать импорт компонентов по смысловым блокам:
Преимущества такой организации:
В некоторых UI-библиотеках SvelteKit допускается использование объектов для динамического рендера компонентов:
console.log('Dynamic component clicked')}>
Динамическая кнопка
Такой подход позволяет строить универсальные фабрики компонентов и управлять интерфейсом через конфигурацию.
Некоторые библиотеки требуют импорта глобальных CSS или SCSS файлов для корректного отображения компонентов:
Для модульных стилей можно использовать class с
class: директивой для условной стилизации:
SvelteKit UI libraries полностью совместимы с TypeScript. Для корректного автодополнения и проверки типов:
Это повышает надежность кода и позволяет избегать ошибок при передаче props или обработке событий.