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

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

 更新時(shí)間:2025年09月30日 10:06:41   作者:編程隨想_Code  
在Vue2到Vue3的升級(jí)過(guò)程中,除了響應(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ù)上了,本文就來(lái)詳細(xì)講解一下Vue的全局API轉(zhuǎn)移,需要的朋友可以參考下

在 Vue2 到 Vue3 的升級(jí)過(guò)程中,除了響應(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ù)上了。

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

一、什么是全局 API?

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

import Vue from 'vue'

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

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

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

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

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

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

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

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

  1. 包體積大:沒(méi)用到的 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 = () => {}

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

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

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

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

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

四、常見(jiàn) API 的遷移對(duì)照表

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)用場(chǎng)景。

五、特殊說(shuō)明

Vue.extend 被移除
Vue3 推薦使用 defineComponent 來(lái)定義組件。

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 了。

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

六、總結(jié)

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

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

一句話精簡(jiǎn)版回答(面試常用):
在 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)移的過(guò)程詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue3全局API轉(zhuǎn)移的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

    Vue之Dep和Observer的用法及說(shuō)明

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

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

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

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

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

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

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

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

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

    vue自動(dòng)化表單實(shí)例分析

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

    解決Electron?store的commit和dispatch不好用問(wèn)題

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

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

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

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

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

最新評(píng)論

平安县| 德格县| 什邡市| 井冈山市| 扬中市| 天全县| 武定县| 卢湾区| 盐源县| 郴州市| SHOW| 云梦县| 伊宁市| 灵山县| 金坛市| 乡城县| 黑龙江省| 烟台市| 海林市| 武功县| 永春县| 通榆县| 凤翔县| 石楼县| 晋江市| 贵溪市| 荆门市| 江孜县| 西吉县| 海林市| 额尔古纳市| 兴文县| 太白县| 甘孜| 岐山县| 秦安县| 五常市| 河津市| 藁城市| 聂拉木县| 阜宁县|