解決vue2.0路由跳轉未匹配相應用路由避免出現空白頁面
阿新 • • 發佈:2019-01-01
在做專案的時候,遇到需要做路由跳轉,但當用戶輸入錯誤url地址,或是其它非法url路由地址,我們或許會想到跳轉至404頁面。不管你有沒有寫一個404頁面,當出現未匹配路由都需重新指定頁面跳轉。可能大家首先想到會是路由重定向,redirect來解決這個問題。但實際上通過redirect是沒辦法更好解決這個問題的。看程式碼紅色部分
import Vue from 'vue'
import Router from 'vue-router'import Hello from '@/components/Hello'
Vue.use(Router)
let routes = [
{
path: '/',
name: 'Login',
component: Login
},
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/index',
name: 'Index',
component: Hello,
}
];
const router = new Router({
history: true,
routes : routes
});
重點如下:
router.beforeEach((to, from, next) => {if (to.matched.length ===0) { //如果未匹配到路由
from.name ? next({ name:from.name }) : next('/'); //如果上級也未匹配到路由則跳轉登入頁面,如果上級能匹配到則轉上級路由
} else {
next(); //如果匹配到正確跳轉
}
});
export default router