最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

一、什么是全局 API?

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

import Vue from 'vue'

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

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

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

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

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

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

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

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

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

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

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

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

示例:

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,你會發(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è)計的好處是:每個應(yīng)用實例都可以有自己獨立的配置,不會互相影響,非常適合 多應(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 這種強制 API 了。

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

六、總結(jié)

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

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

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

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

相關(guān)文章

  • vant如何實現(xiàn)Collapse折疊面板標題自定義

    vant如何實現(xiàn)Collapse折疊面板標題自定義

    這篇文章主要介紹了vant如何實現(xiàn)Collapse折疊面板標題自定義,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue之Dep和Observer的用法及說明

    Vue之Dep和Observer的用法及說明

    這篇文章主要介紹了Vue之Dep和Observer的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue-cli配置全局sass、less變量的方法

    vue-cli配置全局sass、less變量的方法

    這篇文章主要介紹了vue-cli配置全局sass、less變量的方法,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • ElementUI?el-table?樹形數(shù)據(jù)的懶加載的實現(xiàn)

    ElementUI?el-table?樹形數(shù)據(jù)的懶加載的實現(xiàn)

    當面對大量數(shù)據(jù)時,一次性加載所有數(shù)據(jù)可能會導致性能問題,我們可以實現(xiàn)樹形數(shù)據(jù)的懶加載,本文主要介紹了ElementUI?el-table?樹形數(shù)據(jù)的懶加載,感興趣的可以了解一下
    2024-06-06
  • 深入解析Vue 組件命名那些事

    深入解析Vue 組件命名那些事

    本篇文章主要介紹了深入解析Vue 組件命名那些事,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue腳手架配置預渲染及prerender-spa-plugin配置方式

    vue腳手架配置預渲染及prerender-spa-plugin配置方式

    這篇文章主要介紹了vue腳手架配置預渲染及prerender-spa-plugin配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue自動化表單實例分析

    vue自動化表單實例分析

    本篇文章通過實例給大家分享了vue自動化表單的操作方法以及相關(guān)的代碼做了描述,有興趣的朋友可以跟著學習下。
    2018-05-05
  • 解決Electron?store的commit和dispatch不好用問題

    解決Electron?store的commit和dispatch不好用問題

    這篇文章主要介紹了解決Electron?store的commit和dispatch不好用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • fetch網(wǎng)絡(luò)請求封裝示例詳解

    fetch網(wǎng)絡(luò)請求封裝示例詳解

    這篇文章主要介紹了fetch網(wǎng)絡(luò)請求封裝的示例內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2021-11-11
  • vant的Uploader?文件上傳,圖片數(shù)據(jù)回顯問題

    vant的Uploader?文件上傳,圖片數(shù)據(jù)回顯問題

    這篇文章主要介紹了vant的Uploader?文件上傳,圖片數(shù)據(jù)回顯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評論

沅陵县| 青冈县| 囊谦县| 上栗县| 卢湾区| 屯昌县| 惠安县| 井研县| 铜山县| 五河县| 陆河县| 广河县| 达日县| 福鼎市| 铁岭县| 运城市| 台湾省| 扶风县| 永修县| 元氏县| 西乡县| 泊头市| 中卫市| 静海县| 噶尔县| 晋宁县| 明溪县| 阿拉善右旗| 荣成市| 肇东市| 会宁县| 米泉市| 巨野县| 涿鹿县| 正安县| 建昌县| 巴中市| 绥滨县| 军事| 新丰县| 固安县|