vue3 app.use()的作用小結(jié)
一句話先記?。?br />app.use(plugin) 就是給 Vue3 “施工隊(duì)” 統(tǒng)一安裝「外 掛」或「公共設(shè)備」的入口,一旦裝完,所有組件都能直接享用,而不需要每個房間(組件)再去單獨(dú)接電線、通水管。
一、類比理解
- Vue3 施工隊(duì)(
createApp()返回的實(shí)例) - plugin(外 掛)可以是一把“電動螺絲刀”、一套“中央空調(diào)”、或者一塊“共享黑板”。
app.use(plugin)相當(dāng)于隊(duì)長說:“大家停一下,先把這套設(shè)備裝上,以后誰想用直接用。”
二、官方定義
app.use(plugin, options) 會調(diào)用插件的 install(app, options) 方法,并保證同一個插件只會被安裝一次。
三、最常見的 3 類外 掛
全局功能增強(qiáng)(例:Router、Pinia、i18n)
import { createRouter } from 'vue-router' const router = createRouter(...) app.use(router) // 所有組件都能 this.$router / useRouter()全局自定義組件/指令(例:Element-Plus、自定義 loading 指令)
import ElementPlus from 'element-plus' app.use(ElementPlus) // 全局可用 <el-button> 等
工具/調(diào)試類(例:devtools、mock、日志)
import { createPinia } from 'pinia' app.use(createPinia()) // 狀態(tài)管理倉庫一次性裝好
四、自己寫一個最小插件
// my-logger.js
export default {
install(app, options = {}) {
// 1. 添加全局屬性
app.config.globalProperties.$log = (msg) => {
console.log(`[${options.tag || 'APP'}]`, msg)
}
// 2. 添加全局自定義指令
app.directive('focus', {
mounted(el) { el.focus() }
})
// 3. 添加全局組件(可選)
// app.component('MyButton', {...})
}
}
使用:
import { createApp } from 'vue'
import App from './App.vue'
import MyLogger from './my-logger.js'
const app = createApp(App)
app.use(MyLogger, { tag: '別墅' }) // 安裝插件并傳參
app.mount('#app')
以后在任何組件里都能:
<script setup>
import { getCurrentInstance } from 'vue'
const { proxy } = getCurrentInstance()
proxy.$log('Hello from any room!')
</script>
<template>
<input v-focus />
</template>
五、一句話總結(jié)
app.use(plugin) 是 Vue3 提供的一次性「全局安裝接口」:
插件想在全局掛屬性、注組件、注冊指令、改配置,都寫在自己的 install 里;
用戶只需一行 app.use(...),整個應(yīng)用就能共享這些能力。
到此這篇關(guān)于vue3 app.use()的作用的文章就介紹到這了,更多相關(guān)vue3 app.use()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue和uniapp頁面實(shí)現(xiàn)自動滾動到最底部
這篇文章主要介紹了vue和uniapp頁面實(shí)現(xiàn)自動滾動到最底部方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Vue輸入框?qū)崟r驗(yàn)證IP地址合法性并在下方進(jìn)行提示功能實(shí)現(xiàn)
在Vue組件中的IP地址輸入框定義一個checkIpAddress方法,該方法使用正則表達(dá)式對傳入的IP地址進(jìn)行驗(yàn)證,這篇文章主要介紹了Vue輸入框?qū)崟r驗(yàn)證IP地址合法性并在下方進(jìn)行提示,需要的朋友可以參考下2024-06-06
Vue3使用defineAsyncComponent實(shí)現(xiàn)異步組件加載的代碼示例
在 Vue 3 中,異步組件加載是一種優(yōu)化應(yīng)用性能的重要手段,通過異步加載組件,可以減少初始加載時的資源體積,從而提升應(yīng)用的加載速度和用戶體驗(yàn),本文將詳細(xì)介紹如何使用 defineAsyncComponent 實(shí)現(xiàn)異步組件加載,并提供相關(guān)的代碼示例,需要的朋友可以參考下2025-03-03
vue 監(jiān)聽是否切屏和開啟小窗的實(shí)現(xiàn)過程
這篇文章主要介紹了vue 監(jiān)聽是否切屏和開啟小窗的過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
vue3+elementUI如何動態(tài)修改Loading中提示文字
這篇文章主要介紹了vue3+elementUI如何動態(tài)修改Loading中提示文字的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-05-05

