摘要:也就是說我們手動在原型身上掛載無法識別到。這樣就完美避免了報錯的問題。說明使用進行開發(fā)的過程中,會遇到各種各樣的報錯問題,希望記錄下來,避免下次再次踩坑,也希望幫助其他人。
Vue+Typescript中在Vue上掛載axios使用時報錯
在vue項目開發(fā)過程中,為了方便在各個組件中調(diào)用axios,我們通常會在入口文件將axios掛載到vue原型身上,如下:
main.ts
import Vue from "vue" import axios from "./utils/http" Vue.prototype.$axios = axios;
這樣的話,我們在各個組件中進行請求時,就可以直接使用this.$axios,但是在ts中使用this.$axios進行請求時,會進行報錯,如下所示:
從圖中我們可以看出ts在Vue身上檢測不到$axios。通過
在網(wǎng)上查閱發(fā)現(xiàn):在ts中,不識別vue下面掛$axios,不可以掛在原型鏈上。也就是說我們手動在Vue原型身上掛載$axios,ts無法識別到。
雖然ts無法檢測到Vue原型身上的prototype,但是實際上我們是掛載成功的,也就是說我們是可以正常使用的,唯一需要解決的是ts的類型檢測問題,因此,我們可以指定this為any類型,這樣的話就可以避免報錯問題。如下所示:
(this as any).$axios .post("/api/users/login", this.ruleForm) .then((res: {data:any}) => {}
但是使用any意味著失去了類型安全保障,并且你得不到工具的支持。
解決方法2:使用vue-axios這個包來處理這個掛載問題我們可以通過使用vue-axios這個包來處理這個掛載問題。vue-axios 是在axios基礎(chǔ)上擴展的插件,在Vue.prototype原型上擴展了$http等屬性,可以更加方便的使用axios。
# 安裝 npmi axios npm i vue-axios -S # 注冊 Vue.use(axios,vue-axios) # 使用 this.axios()
通過使用vue-axios包,我們可以直接使用this.axios進行調(diào)用。
從上面我們可以看出vue-axios幫助我們實現(xiàn)了在Vue原型身上掛載axios,而且能夠被ts檢測到。這樣就完美避免了ts報錯的問題。
說明使用ts進行開發(fā)的過程中,會遇到各種各樣的報錯問題,希望記錄下來,避免下次再次踩坑,也希望幫助其他人。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/106483.html
摘要:常出現(xiàn)的錯誤前十位為了可讀性,錯誤名稱進行了一定的簡寫。讓我們深入了解每個錯誤發(fā)生的原因以及解決方法。這個問題很容易解決。當未捕獲的錯誤跨越違法跨域策略的域邊界時,會發(fā)生腳本錯誤。這是當你在中試圖調(diào)用的方法時出現(xiàn)的錯誤。 JavaScript常出現(xiàn)的錯誤前十位 showImg(https://segmentfault.com/img/bV3Z1z?w=1116&h=691); 為了可讀...
摘要:前言本文講解如何在項目中使用來搭建并開發(fā)項目,并在此過程中踩過的坑。具有類型系統(tǒng),且是的超集,在年勢頭迅猛,可謂遍地開花。年將會更加普及,能夠熟練掌握,并使用開發(fā)過項目,將更加成為前端開發(fā)者的優(yōu)勢。 showImg(https://segmentfault.com/img/remote/1460000018720573); 前言 本文講解如何在 Vue 項目中使用 TypeScript...
前端Axios的設(shè)置處理當 Content-Type 為 application/json 的時候,會先產(chǎn)生一個 OPTION 請求(如 Network所示)。 可以把 Content-Type 設(shè)置為 application/x-www-form-urlencoded。設(shè)置 Auth 請求頭,參看官方文檔 axios.defaults.baseURL = https://api.example....
摘要:在做后臺管理時,使用了搭配,請求方法使用了插件,在使用下拉框時,因為我需要獲取選中的選項中的其他值,因此需要傳入對象。 在做后臺管理時,使用了vue搭配elementUI,請求方法使用了axios插件,在使用下拉框時,因為我需要獲取選中的選項中的其他值,因此需要傳入對象。對select下拉框的文檔沒有讀的很仔細,百度過幾篇文章,也沒有理解他們表達的意思,然后自己又去看文檔,把他的屬性看...
摘要:要在我們的應(yīng)用程序中顯示模擬數(shù)據(jù),可以在元素中寫入指令用于渲染我們的列表。雖然這超出了本教程的范圍,但建議用于更大或更復(fù)雜的應(yīng)用程序。 這篇文章講述了如何快速構(gòu)建一個vue程序,并使用axios從遠程獲取數(shù)據(jù)。這是原文章的直通門 通常情況下,在構(gòu)建JavaScript應(yīng)用程序時,會從遠程獲取數(shù)據(jù)或使用API。我最近研究了一些公用API,發(fā)現(xiàn)有很多很酷的東西可以用在這些獲取到的數(shù)據(jù)上。 ...
閱讀 1355·2021-11-15 11:45
閱讀 3122·2021-09-27 13:36
閱讀 2866·2019-08-30 15:54
閱讀 984·2019-08-29 12:38
閱讀 2905·2019-08-29 11:22
閱讀 2983·2019-08-26 13:52
閱讀 2024·2019-08-26 13:30
閱讀 584·2019-08-26 10:37