參考的網址:https://blog.csdn.net/weixin_34353714/article/details/86958742
不為其他,就為了記錄一下,方便以后查看:
第一種方法:
1、首先在http.js中:定義一個變量context用來接收vue,再定一個initVue方法傳入的參數是vue,並導出這個方法。
import axios from 'axios' const TIME_OUT_MS = 60 * 1000 // 默認請求超時時間 let context = null // 定義一個變量,用來代替this(vue) function handleResults (response) { context.$router.push('/login') return result } export default { // 寫一個此文件引入vue的方法,然后export導出去 initContext (vue) { context = vue }, post (url, data, response, exception) { },
2、然后在main.js中:執行http.js導出的initContext方法
var vue = new Vue({ el: '#app', router, components: {App}, template: '<App/>' }) Vue.prototype.http = http //掛載http的時候執行引入vue的方法 Vue.prototype.http.initContext(vue) // 傳入vue實例
第二種方法:
1、main.js導出vue實例:
var vue = new Vue({ el: '#app', router, components: { App }, template: '<App/>' }) export default vue
2、在需要使用的js中引入
import context from '../main.js'
context.$router.push('/login')
我選擇了使用第二種方法;