在vue项目中的js文件里使用vue实例

第一种方法:

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')

 

我选择了使用第二种方法;

posted @ 2021-05-10 11:36  前端王者(法师)  阅读(2131)  评论(0编辑  收藏  举报