首頁 >web前端 >js教程 >vue使用axios時this指向哪裡

vue使用axios時this指向哪裡

php中世界最好的语言
php中世界最好的语言原創
2018-04-14 10:06:522444瀏覽

這次帶給大家vue使用axios時this指向哪裡,使用vue呼叫axios時的this注意事項有哪些,下面就是實戰案例,一起來看一下。

vue使用axios時this指向哪裡

本文主要介紹了vue使用axios時this的指向問題,下面話不多說了,來一起看看詳細的介紹吧。

1.解決方法

# 在vue中使用axios做網路請求的時候,會遇到this不指向vue,而為undefined,可以使用箭頭函數"=>"來解決。如下:

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); //箭头函数"=>"使this指向vue
  });
 });
 }
}

2. 原因

# ES6中的 箭頭函數 "=>" 內部的this是詞法作用域,由上下文決定(也就是由外層呼叫者vue來決定)。

3. 題外話

# 使用"=>"函數,就可以告別之前的兩種寫法了:

bind(this)來改變匿名函數的this指向

# hack寫法 var _this= this;

loginAction(formName) {
 var _this= this;
 this.$axios.post("...")
 .then(function(response){
  console.log(_this); //这里 _this 指向vue
 })
 });
 }

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

JS怎麼將json格式陣列下載到excel表格裡

怎麼操作jackson解析json字串時首字母的大小寫轉換

Angular驗證功能實作步奏

以上是vue使用axios時this指向哪裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn