app.use 是 Vue3 挂载插件的唯一标准方式,必须在 app.mount() 前调用,接收插件函数或含 install 方法的对象及可选配置,支持链式调用与自动去重。
Vue3 中的 app.use 是挂载插件的唯一标准方式,所有最新和第三方库(比如 Vue Router、Pinia、Element Plus)都必须通过它接入应用。它不是“可选操作”,而是功能注入的前提——没调用 app.use(),插件根本不会生效。
它接收两个参数:插件本身(函数或含 install 方法的对象),以及可选的配置对象。必须在 app.mount() 之前执行,否则插件无法完成初始化。
app.use(插件),再 app.mount()
app.use(router).use(store).use(uiLib)
install(app, options) 方法的对象以 Vue Router 4 为例,安装后需在 main.js 或 main.ts 中完成注册:
src/router/index.js)app.use(router),无需额外参数install 方法,会自动注册全局组件(<router-link>、<router-view>)、指令和组合式 API(useRouter、useRoute)示例代码:
import { createApp } from 'vue'import App from './App.vue'import router from './router'const app = createApp(App)app.use(router) // ✅ 关键一步app.mount('#app')Pinia 同样遵循插件规范,但需注意:它的 createPinia() 返回的是一个插件实例,不是普通对象。
createPinia() 得到 pinia 实例app.use(),而不是直接 import 默认导出useStore 等组合式 API示例:
import { createApp } from 'vue'import { createPinia } from 'pinia'import App from './App.vue'const app = createApp(App)const pinia = createPinia()app.use(pinia) // ✅ 不是 app.use(createPinia())app.mount('#app')像 Element Plus、Ant Design Vue 这类 UI 库,通常提供 app.use(ElMessage) 或 app.use(ElementPlus) 入口。部分库还支持按需引入 + 插件注册。
app.use()(多数现代 UI 库需要)app.use(i18n, { locale: 'zh-CN' })
小提示:如果插件没生效,优先检查三点——是否漏掉 app.use()、是否写在 mount() 之后、插件导出格式是否符合规范。