欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3全局組件自動注冊功能實現(xiàn)

 更新時間:2023年02月01日 15:45:45   作者:風啞  
本文主要講述vue3的全局公共組件的自動注冊功能,本文分步驟結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

vue3全局組件自動注冊

前言:

本文主要講述vue3的全局公共組件的自動注冊

第一步:建文件

需要在src/components 下創(chuàng)建一個文件夾用于存放封裝的公共組件(這里我起名叫coms)

需要在src/components 下創(chuàng)建一個js文件用于存放引入組件并注冊(這里我起名叫Index.js)

第二步:寫函數(shù)

在coms中建文件夾,將組件放入這個文件夾,此文件夾的名字就是我們將要注冊組件的名字。

在Index.js中寫入以下工具函數(shù):

// 全局組件注冊 需要到coms這個目錄下注冊
 
export default {
    install(app) {
        const req = require.context('./coms', true, /\.vue$/);
        req.keys().forEach((item) => {
            const defaultObj = req(item).default;
 
            let name = item.split('/')[1];
            // console.log('name', name);
            app.component(name, defaultObj);
        });
    }
};

注意:這里我沒有用 defaultObj.__file 來取文件路徑,是因為生產環(huán)境下__file屬性會被刪除,會導致如下報錯

第三步:導入文件

在main.js中導入工具函數(shù)并掛載到app中

import coms from '@/components/Index'; //全局組件注冊
app.use(coms);

第四步:全局使用

到這一步就可以全局用我們定義好的文件名作為組件名了。

ps:vue2其實也大差不差,就是吧app.use()改成了 Vue.use()

最后感謝大佬的指導 @一個好好的程序員

參考文獻:

vue3全局組件注冊

補充: Vue3注冊全局組件

例如組件使用頻率非常高,幾乎每個頁面都在使用便可以封裝成全局組件

1.注冊單個全局組件

在main.ts 引入我們的組件跟隨在createApp(App) 后面 切記不能放到mount 后面這是一個鏈式調用用

其次調用 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用來將所有需要全局注冊的組件導入

?: 如果使用的是 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中導入

?這里使用循環(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

  }

}

4. 最后直接導入即可

到此這篇關于vue3全局組件自動注冊功能實現(xiàn)的文章就介紹到這了,更多相關vue3全局組件自動注冊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue3 全局使用按鈕截流指令示例代碼

    Vue3 全局使用按鈕截流指令示例代碼

    這篇文章主要介紹了Vue3 全局使用按鈕截流指令示例代碼,Vue2與Vue3中的自定義指令實現(xiàn)方式略有不同,但實現(xiàn)的按鈕截流功能是類似的,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • vue一步到位的實現(xiàn)動態(tài)路由

    vue一步到位的實現(xiàn)動態(tài)路由

    這篇文章主要介紹了vue一步到位的實現(xiàn)動態(tài)路由,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue循環(huán)遍歷選項賦值到對應控件的實現(xiàn)方法

    Vue循環(huán)遍歷選項賦值到對應控件的實現(xiàn)方法

    這篇文章主要介紹了Vue-循環(huán)遍歷選項賦值到對應控件的實現(xiàn)方法啊,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • vue 解決報錯問題小結

    vue 解決報錯問題小結

    最近入門vue,用字節(jié)跳動的arco初始化一個項目的時候報錯自己解決后沒來的及截圖,從別人那拷貝個網(wǎng)圖把,是一樣的報錯,本文給大家分享vue 解決報錯問題小結,感興趣的朋友一起看看吧
    2023-09-09
  • vue前端開發(fā)keepAlive使用詳解

    vue前端開發(fā)keepAlive使用詳解

    在開發(fā)中經(jīng)常有從列表跳到詳情頁,然后返回詳情頁的時候需要緩存列表頁的狀態(tài)(比如滾動位置信息),這個時候就需要保存狀態(tài),要緩存狀態(tài)
    2021-10-10
  • Vuejs入門教程之Vue生命周期,數(shù)據(jù),手動掛載,指令,過濾器

    Vuejs入門教程之Vue生命周期,數(shù)據(jù),手動掛載,指令,過濾器

    本篇文章主要介紹了Vuejs入門教程之Vue生命周期,數(shù)據(jù),手動掛載,指令,過濾器的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • 一篇超完整的Vue新手入門指導教程

    一篇超完整的Vue新手入門指導教程

    這篇文章主要給大家介紹了關于Vue入門的相關資料,是一篇超完整的Vue入門教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • ElementPlus 中el-select自定義指令實現(xiàn)觸底加載請求options數(shù)據(jù)的方法

    ElementPlus 中el-select自定義指令實現(xiàn)觸底加載請求options數(shù)據(jù)的方法

    觸底時,繼續(xù)向后端發(fā)請求獲取下一頁的數(shù)據(jù),請求回來的數(shù)據(jù)合并給options,這篇文章主要介紹了ElementPlus 中el-select自定義指令實現(xiàn)觸底加載請求options數(shù)據(jù)的操作方法,需要的朋友可以參考下
    2024-08-08
  • Vue表單輸入綁定的示例代碼

    Vue表單輸入綁定的示例代碼

    這篇文章主要介紹了Vue表單輸入綁定的示例代碼,本文使用v-model指令在表單input創(chuàng)建雙向數(shù)據(jù)綁定,非常具有實用價值,需要的朋友可以參考下
    2018-11-11
  • 使用vue編寫h5公眾號跳轉小程序的實現(xiàn)代碼

    使用vue編寫h5公眾號跳轉小程序的實現(xiàn)代碼

    這篇文章主要介紹了使用vue編寫h5公眾號跳轉小程序,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論