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

Vue3全局API轉(zhuǎn)移的過程詳解

 更新時(shí)間:2025年09月30日 10:06:41   作者:編程隨想_Code  
在Vue2到Vue3的升級(jí)過程中,除了響應(yīng)式系統(tǒng)、組件寫法等發(fā)生了變化,全局 API 的轉(zhuǎn)移也是一個(gè)非常重要的點(diǎn),很多初學(xué)者在遷移代碼時(shí)會(huì)遇到報(bào)錯(cuò),就是因?yàn)閂ue3不再像Vue2那樣把所有API掛在Vue構(gòu)造函數(shù)上了,本文就來詳細(xì)講解一下Vue的全局API轉(zhuǎn)移,需要的朋友可以參考下

在 Vue2 到 Vue3 的升級(jí)過程中,除了響應(yīng)式系統(tǒng)、組件寫法等發(fā)生了變化,全局 API 的轉(zhuǎn)移也是一個(gè)非常重要的點(diǎn)。很多初學(xué)者在遷移代碼時(shí)會(huì)遇到報(bào)錯(cuò),就是因?yàn)?Vue3 不再像 Vue2 那樣把所有 API 掛在 Vue 構(gòu)造函數(shù)上了。

本文就來詳細(xì)講解一下 Vue 的全局 API 轉(zhuǎn)移。

一、什么是全局 API?

在 Vue2 中,我們經(jīng)常會(huì)寫:

import Vue from 'vue'

// 全局配置
Vue.config.productionTip = false

// 全局注冊組件
Vue.component('MyComponent', {...})

// 全局注冊指令
Vue.directive('focus', {...})

// 全局使用插件
Vue.use(MyPlugin)

// 創(chuàng)建實(shí)例
new Vue({
  render: h => h(App),
}).$mount('#app')

可以看到,所有的 API(config、componentdirective、use 等)都掛在 Vue 構(gòu)造函數(shù)上。

二、Vue3 為什么要轉(zhuǎn)移?

在 Vue3 中,框架的設(shè)計(jì)理念更加 模塊化可樹搖(Tree-shaking)
如果還把所有 API 都集中在 Vue 上,會(huì)導(dǎo)致以下問題:

  1. 包體積大:沒用到的 API 也會(huì)被打包。
  2. 類型推導(dǎo)差:不利于 TS 類型支持。
  3. 邏輯不清晰:應(yīng)用級(jí)別的配置與組件實(shí)例混在一起。

因此,Vue3 把全局 API 拆分成了更清晰的模塊。

三、Vue3 的全局 API 轉(zhuǎn)移

在 Vue3 中,所有的應(yīng)用級(jí) API 都轉(zhuǎn)移到了由 createApp 創(chuàng)建的 應(yīng)用實(shí)例(app 實(shí)例) 上。

示例:

import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)

// 全局配置
app.config.globalProperties.$http = () => {}

// 全局注冊組件
app.component('MyComponent', {...})

// 全局注冊指令
app.directive('focus', {...})

// 全局使用插件
app.use(MyPlugin)

// 掛載應(yīng)用
app.mount('#app')

對比 Vue2,你會(huì)發(fā)現(xiàn):
 Vue.xxx 變成了 app.xxx。

四、常見 API 的遷移對照表

Vue2 寫法Vue3 寫法
Vue.configapp.config
Vue.componentapp.component
Vue.directiveapp.directive
Vue.mixinapp.mixin
Vue.useapp.use
Vue.prototypeapp.config.globalProperties

這樣設(shè)計(jì)的好處是:每個(gè)應(yīng)用實(shí)例都可以有自己獨(dú)立的配置,不會(huì)互相影響,非常適合 多應(yīng)用場景。

五、特殊說明

Vue.extend 被移除
Vue3 推薦使用 defineComponent 來定義組件。

import { defineComponent } from 'vue'

export default defineComponent({
  props: { msg: String },
  setup(props) {
    return () => <div>{ props.msg }</div>
  }
})

Vue.setVue.delete 移除
在 Vue3 的 Proxy 響應(yīng)式系統(tǒng)下,已經(jīng)不需要 set/delete 這種強(qiáng)制 API 了。

全局過濾器 Vue.filter 被移除
Vue3 建議用 方法計(jì)算屬性 來替代。

六、總結(jié)

  • Vue2:全局 API 都掛在 Vue 構(gòu)造函數(shù)上。
  • Vue3:全局 API 都轉(zhuǎn)移到了 應(yīng)用實(shí)例 app 上。
  • 遷移規(guī)則:Vue.xxx → app.xxx
  • 移除了一些過時(shí) API(Vue.extend、Vue.set、Vue.filter 等)。

這就是所謂的 Vue 全局 API 轉(zhuǎn)移,如果面試官問到,可以從 原因、變化、示例、遷移方式 四個(gè)維度回答。

一句話精簡版回答(面試常用):
在 Vue2 中,全局 API 掛在 Vue 上;在 Vue3 中,這些 API 都遷移到由 createApp 創(chuàng)建的應(yīng)用實(shí)例上,比如 Vue.useapp.use,Vue.componentapp.component,這樣做是為了支持多應(yīng)用和更好的 Tree-shaking。

以上就是Vue3全局API轉(zhuǎn)移的過程詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue3全局API轉(zhuǎn)移的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue3清空let arr=reactive([])的方式

    vue3清空let arr=reactive([])的方式

    這篇文章主要介紹了vue3清空let arr=reactive([])的方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • vue嵌入第三方頁面幾種常見方法

    vue嵌入第三方頁面幾種常見方法

    在Vue中嵌入第三方頁面可以采用多種方法,例如使用<iframe>、Vue插件、動(dòng)態(tài)加載第三方腳本或WebComponents,不同方法適用于不同類型的內(nèi)容和項(xiàng)目需求,如<iframe>適用于整個(gè)網(wǎng)頁,而動(dòng)態(tài)腳本和WebComponents適合特定功能,選擇合適的方法可以有效整合外部資源
    2024-09-09
  • vue單選按鈕,選中如何改變其當(dāng)前按鈕顏色

    vue單選按鈕,選中如何改變其當(dāng)前按鈕顏色

    這篇文章主要介紹了vue單選按鈕,選中如何改變其當(dāng)前按鈕顏色。具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue中style設(shè)置scoped后部分樣式不生效的解決

    vue中style設(shè)置scoped后部分樣式不生效的解決

    這篇文章主要介紹了vue中style設(shè)置scoped后部分樣式不生效的解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • vue調(diào)試工具沒有Pinia模塊的簡單解決辦法

    vue調(diào)試工具沒有Pinia模塊的簡單解決辦法

    Pinia是Vue的存儲(chǔ)庫,它允許您跨組件/頁面共享狀態(tài),這篇文章主要給大家介紹了關(guān)于vue調(diào)試工具沒有Pinia模塊的簡單解決辦法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • vue+Element-ui實(shí)現(xiàn)分頁效果

    vue+Element-ui實(shí)現(xiàn)分頁效果

    這篇文章主要為大家詳細(xì)介紹了vue+Element-ui實(shí)現(xiàn)分頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 簡單聊聊Vue中的計(jì)算屬性和屬性偵聽

    簡單聊聊Vue中的計(jì)算屬性和屬性偵聽

    計(jì)算屬性用于處理復(fù)雜的業(yè)務(wù)邏輯,vue提供了檢測數(shù)據(jù)變化的一個(gè)屬性watch可以通過newVal獲取變化之后的值,這篇文章主要給大家介紹了關(guān)于Vue中計(jì)算屬性和屬性偵聽的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 部署Vue項(xiàng)目到服務(wù)器后404錯(cuò)誤的原因及解決方案

    部署Vue項(xiàng)目到服務(wù)器后404錯(cuò)誤的原因及解決方案

    文章介紹了Vue項(xiàng)目部署步驟以及404錯(cuò)誤的解決方案,部署步驟包括構(gòu)建項(xiàng)目、上傳文件、配置Web服務(wù)器、重啟Nginx和訪問域名,404錯(cuò)誤通常是由于歷史模式問題導(dǎo)致的,解決方法是修改Nginx配置,將所有頁面請求重定向到index.html,并在Vue應(yīng)用中覆蓋所有路由情況
    2025-02-02
  • vue實(shí)現(xiàn)商品列表的添加刪除實(shí)例講解

    vue實(shí)現(xiàn)商品列表的添加刪除實(shí)例講解

    在本篇內(nèi)容里小編給大家分享的是關(guān)于vue實(shí)現(xiàn)商品列表的添加刪除實(shí)例講解,有興趣的朋友們可以參考下。
    2020-05-05
  • vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴

    vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴

    這篇文章主要介紹了vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-06-06

最新評論