要實現在的項目功能我需要在我自己登錄網關做一個判斷我封裝了一個axios 而這個涵數庫每一次都會請求后端網絡并返回狀態碼當返回狀態為:“登錄超時” 時 我router跳轉 而不是window.location='/login'相關代碼import Vue from 'vue'import router from 'vue-router'import axios from 'axios';
Vue.prototype.$ajax = axios//這個是我封裝的一個axiosexport default function(url,data={}){
...這里做一些網絡請求使用... if(登錄超時){
...router跳轉...//如果在這里進行跳轉
/*router.push('無效')*/
}
}
2 回答

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
此處的router
是并不是import Router from 'vue-router'
的Router依賴.
它實際上是路由進行統一管理后導出的一個router對象.
// router.jsimport Router from "vue-router";import Home from 'Home.vue'Vue.use(Router);// 導出的routerexport default new Router({ routes: [ { path: "/", name: "home", component: Home, children: [ { path: "/a", name: "a", component: A } ] })
在你需要的頁面上,通過引入這樣的對象實例,然后使用router.push方法
// 需要調用的js文件// 引入router.js的對象import router from 'router.js'... ... func(){ ... router.push('/'); ... }

弒天下
TA貢獻1818條經驗 獲得超8個贊
封裝的文件是不是在單獨的 js 文件中,你可能需要把 router 引進去才能用 router.push
import {router} from '@/router/index'
router/index.js
import Vue from 'vue'import iView from 'iview'import VueRouter from 'vue-router'import Cookies from 'js-cookie'import { routers } from './router'Vue.use(VueRouter)const RouterConfig = { mode: 'history', routes: routers }export const router = new VueRouter(RouterConfig)
你需要的是 new VueRouter 后的這個對象。
添加回答
舉報
0/150
提交
取消