vue使用axios時關于this的指向問題詳解
前言
眾所周知axios是vue-resource后出現(xiàn)的Vue請求數(shù)據(jù)的插件。vue更新到2.0之后,作者尤大就宣告不再對vue-resource更新,而是推薦的axios。更多的詳細介紹大家可以參考這里:http://www.dhdzp.com/article/109444.htm
本文主要介紹了關于vue使用axios時this的指向問題,下面話不多說了,來一起看看詳細的介紹吧。
1.解決辦法
在vue中使用axios做網絡請求的時候,會遇到this不指向vue,而為undefined,可以使用箭頭函數(shù)"=>"來解決。如下:
methods: {
loginAction(formName) {
this.$axios.post('http://127.0.0.1/u/subLogin', {
username: this.username,
password: this.password
})
.then(function(response){
console.log(this); //這里 this = undefined
})
.catch((error)=> {
console.log(error); //箭頭函數(shù)"=>"使this指向vue
});
});
}
}
2. 原因
ES6中的 箭頭函數(shù) "=>" 內部的this是詞法作用域,由上下文確定(也就是由外層調用者vue來確定)。
3. 題外話
使用"=>"函數(shù),就可以告別之前的兩種寫法了:
bind(this)來改變匿名函數(shù)的this指向
hack寫法 var _this= this; :
loginAction(formName) {
var _this= this;
this.$axios.post("...")
.then(function(response){
console.log(_this); //這里 _this 指向vue
})
});
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
vue router使用query和params傳參的使用和區(qū)別
本篇文章主要介紹了vue router使用query和params傳參的使用和區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Element中table組件按照屬性執(zhí)行合并操作詳解
在我們日常開發(fā)中,表格業(yè)務基本是必不可少的,對于老手來說確實簡單,家常便飯罷了,但是對于新手小白如何最快上手搞定需求呢?本文從思路開始著手,幫你快速搞定表格2022-11-11
element-ui table span-method(行合并)的實現(xiàn)代碼
element-ui官網中關于行合并的例子是根據(jù)行號進行合并的,這顯然不符合我們日常開發(fā)需求,因為通常我們table中的數(shù)據(jù)都是動態(tài)生成的,非常具有實用價值,需要的朋友可以參考下2018-12-12

