Локальная регистрация — это способ подключения компонентов, при котором они:
Снижение размера бандла:
Пример динамического импорта:
components: {
HeavyComponent: () => import('./HeavyComponent.vue')
}
Явное указание используемых компонентов:
import ButtonPrimary from './ButtonPrimary.vue'
import ModalDialog from './ModalDialog.vue'
export default {
components: {
ButtonPrimary,
ModalDialog
}
}
Легче отслеживать:
Предотвращение:
// ProductGallery.vue
import ZoomModal from './ZoomModal.vue'
export default {
components: { ZoomModal }
}
// OrderForm.vue
import AddressSelector from './AddressSelector.vue'
import DeliveryOptions from './DeliveryOptions.vue'
export default {
components: { AddressSelector, DeliveryOptions }
}
// DashboardPage.vue
const DataVisualization = () => import('./DataVisualization.vue')
export default {
components: { DataVisualization }
}
Критерий | Локальная регистрация | Глобальная регистрация |
---|---|---|
Область видимости | Только текущий компонент | Всё приложение |
Размер бандла | Оптимизированный | Может увеличить |
Простота использования | Требует импорт | Доступен везде |
Поддержка tree-shaking | Полная | Ограниченная |
Отладка | Проще | Сложнее |
import Btn from '@/components/ui/Button.vue'
import Icon from '@/components/ui/Icon.vue'
// vite.config.js
import Components from 'unplugin-vue-components/vite'
export default {
plugins: [
Components({
dirs: ['src/components'],
extensions: ['vue']
})
]
}
В <script setup>
компоненты можно использовать сразу после импорта:
<script setup>
import MyComponent from './MyComponent.vue'
</script>
<template>
<MyComponent />
</template>
Локальная регистрация компонентов — это важный инструмент для создания поддерживаемых и производительных Vue-приложений, который обеспечивает четкую структуру зависимостей и оптимизацию загрузки кода.