第一种方法:
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‘)
我选择了使用第二种方法;