[元件] 全域元件
Vue 的作法
app.component('component-name', component)
Quasar2 的做法
Vite/Typescript
建立 src/boot/register-my-component.ts
import { boot } from 'quasar/wrappers';
import BasicBtnVue from 'src/components/BasicBtn.vue';
// "async" is optional;
// more info on params: https://v2.quasar.dev/quasar-cli/boot-files
export default boot(async ({ app }) => {
app.component('x-btn', BasicBtnVue);
});
在 quasar.conf.js 內新增設定
module.exports = configure(function (/* ctx */) {
return {
// ...上略
// https://v2.quasar.dev/quasar-cli-vite/boot-files
boot: ['i18n', 'register-my-component'],
// ... 下略
};
});
建立型別定義檔,我放在 src/components 下 components.d.ts
import BasicBtn from './BasicBtn.vue';
declare module '@vue/runtime-core' {
export interface GlobalComponents {
XBtn: typeof BasicBtn;
}
}