В Quasar компоненты делятся на глобальные и локальные, что определяет способ их использования и область видимости в приложении.
Глобальная регистрация выполняется через объект Vue при создании
приложения. В Quasar она обычно происходит в файле src/boot
или в основном файле main.js:
import { boot } from 'quasar/wrappers'
import MyComponent from 'components/MyComponent.vue'
export default boot(({ app }) => {
app.component('MyComponent', MyComponent)
})
После такой регистрации компонент <MyComponent />
доступен во всех шаблонах приложения без необходимости его повторного
импорта.
Преимущества глобальной регистрации:
Недостатки глобальной регистрации:
Локальная регистрация выполняется внутри конкретного компонента и ограничивает область видимости компонентом-родителем:
<template>
<div>
<LocalComponent />
</div>
</template>
<script>
import LocalComponent from 'components/LocalComponent.vue'
export default {
components: {
LocalComponent
}
}
</script>
Преимущества локальной регистрации:
Недостатки:
Quasar и Vue поддерживают динамическую регистрацию компонентов, что позволяет подключать их по требованию, экономя ресурсы:
export default {
components: {
AsyncComponent: () => import('components/AsyncComponent.vue')
}
}
При такой регистрации компонент загружается только тогда, когда он реально используется на странице.
Quasar предоставляет множество компонентов, которые уже зарегистрированы глобально через плагин Quasar Framework. Тем не менее, в некоторых случаях требуется локальная регистрация, особенно если используется tree-shaking:
import { QBtn, QCard } from 'quasar'
export default {
components: {
QBtn,
QCard
}
}
Это позволяет подключать только те компоненты Quasar, которые реально используются, уменьшая размер финального бандла.
import().Правильное разделение компонентов на глобальные и локальные позволяет оптимизировать производительность приложения, структурировать код и уменьшить связность между его частями. Использование Quasar Framework облегчает этот процесс, предлагая гибкие способы регистрации и подключения компонентов, включая статическую, локальную и динамическую.