Vue3注冊全局組件的使用方法
例如組件使用頻率非常高,幾乎每個頁面都在使用便可以封裝成全局組件
1.注冊單個全局組件
在main.ts 引入我們的組件跟隨在createApp(App) 后面 切記不能放到mount 后面這是一個鏈式調(diào)用用
其次調(diào)用 component 第一個參數(shù)組件名稱 第二個參數(shù)組件實例
import { createApp } from 'vue' import App from './App.vue' import './assets/css/reset/index.less' import Card from './components/Card/index.vue' createApp(App).component('Card',Card).mount('#app') //.component('Card',Card)就是注冊全局組件 (‘自定義鍵名',組件名)
使用方法
直接在其他vue頁面 立即使用即可 無需引入
<template> <Card></Card> </template>
2.批量注冊全局組件
遇到要注冊很多個全局組件時,可以定義中間件,讓中間件去完成組件注冊,然后main.js再引入使用這個中間件
在src/components
中新建index.ts
用來將所有需要全局注冊的組件導(dǎo)入
?: 如果使用的是 JS
可以刪除類型校驗
import type { Component } from 'vue' //import type 是用來協(xié)助進行類型檢查和聲明的,在運行時是完全不存在的。 import SvgIcon from './SvgIcon/index.vue' // ?如果使用的是 JS 可以刪除類型校驗 const components: { [propName: string]: Component //字面量類型,每個屬性值類型為組件的類型 } = { SvgIcon } export default components
2. 在main.ts
中導(dǎo)入
?這里使用循環(huán)的方式, 將每個全局組件進行注冊
import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' // 基于斷點的隱藏類 Element 額外提供了一系列類名,用于在某些條件下隱藏元素 import App from './App.vue' import router from './router' import { store, key } from './store' import globalComponent from '@/components/index' //引入需要注冊的全部組件 const app = createApp(App) app.use(store, key).use(router).use(ElementPlus) // 注冊全局的組件 (對所有需要注冊的組件進行遍歷并注冊) for (const componentItme in globalComponent) { app.component(componentItme, globalComponent[componentItme]) } app.mount('#app') //需要注冊完組件后才掛載
3. 如果使用TS
編寫,還需要在和main.ts
同級的目錄, 創(chuàng)建一個components.d.ts
, 用來處理組件引入報錯的問題和添加組件類型提示
import SvgIcon from '@/components/SvgIcon/index.vue' //要擴充@vue/runtime-core包的聲明 declare module '@vue/runtime-core' { export interface GlobalComponents { //這里擴充"ComponentCustomProperties"接口 SvgIcon: typeof SvgIcon } }
3. 最后直接導(dǎo)入即可
到此這篇關(guān)于Vue3注冊全局組件的文章就介紹到這了,更多相關(guān)Vue3注冊全局組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue狀態(tài)模式實現(xiàn)窗口??抗δ?靈動、自由, 管理后臺Admin界面)
這篇文章主要介紹了Vue狀態(tài)模式實現(xiàn)窗口??抗δ?靈動、自由, 管理后臺Admin界面),本文通過實例代碼文字說明給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03Vue如何在CSS中使用data定義的數(shù)據(jù)淺析
這篇文章主要給大家介紹了關(guān)于Vue如何在CSS中使用data定義的數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-05-05Vue3+TypeScript埋點方面的應(yīng)用實踐
本文詳細闡述了如何在Vue3中使用TypeScript實現(xiàn)埋點功能,包括全局注冊$track插件、Mixin實現(xiàn)全局埋點等,隨著Vue3的逐漸普及,在實際工作中采用Vue3+TypeScript實現(xiàn)埋點將會變得越來越流行2023-08-08VUE2.0+ElementUI2.0表格el-table實現(xiàn)表頭擴展el-tooltip
這篇文章主要介紹了VUE2.0+ElementUI2.0表格el-table實現(xiàn)表頭擴展el-tooltip,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11vue element-ui實現(xiàn)el-table表格多選以及回顯方式
這篇文章主要介紹了vue element-ui實現(xiàn)el-table表格多選以及回顯方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07webpack+vue-cil 中proxyTable配置接口地址代理操作
這篇文章主要介紹了webpack+vue-cil 中proxyTable配置接口地址代理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07