vue訪問未定義的路由時(shí)重定向404問題
vue訪問未定義的路由時(shí)重定向404
我們?cè)谠L問未配置的路由時(shí),就會(huì)出現(xiàn)一個(gè)空白界面,如何重定向404呢,廢話不多說,直接來方法。
- 第一種:官方路由守衛(wèi)。
- 第二種:可以在配置路由中配置 " * " ,對(duì)未進(jìn)行配置的路由進(jìn)行重定向。
第一種實(shí)現(xiàn)方法:使用路由守衛(wèi)進(jìn)行。
這種方法也可以實(shí)現(xiàn)404跳轉(zhuǎn),但是具有一定的局限性,如果路由配置的比較多的話,使用不太方便,這里就不介紹路由守衛(wèi)了,看一下官方文檔就很容易理解。
第二種:可以在配置路由中配置 " * " ,對(duì)未進(jìn)行配置的路由進(jìn)行重定向。
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
?
let router = new VueRouter({
? ? routes: [{
? ? ? ? path: '/',?
? ? ? ? redirect: '/home'//重定向
? ? }, ?{
? ? ? ? path: '/home',//配置路徑
? ? ? ? component: () =>
? ? ? ? ? ? import ('../components/home'),//按需引入
? ? },{
? ? ? ? path: '/404',
? ? ? ? component: () =>
? ? ? ? ? ? import ('../components/404')
? ? },{
? ? ? ? path: '*',//匹配未定義的路由
? ? ? ? redirect: '/404'//重定向
? ? }]
})
export default router我在其他博客看到有的說需要放在所有配置路由的最后一個(gè),但是我試了一下放在其他位置也是可以重定向到404頁面的,可能是我沒有發(fā)現(xiàn)到bug吧,那就放最后面也是一樣的。
vue.js 重定向和404等等相關(guān)的問題?
- 1.進(jìn)入后就是默認(rèn) /
- 2.重定向 {path:'/',redirect:'home'}
- 3.重定向 {path:'/',redirect:{name:'home'}}【采用對(duì)象的方式:一勞永逸】
- 4.所謂404: 指在路由規(guī)則的最后的一個(gè)規(guī)則
- 寫上一個(gè)很強(qiáng)大的匹配規(guī)則
- {path:'*',component:notFoundVue}
相關(guān)文件代碼:
1. main.js文件
import Vue from 'vue';
import VueRouter from 'vue-router';
//引入主體(頁面初始化顯示)
import App from './components/app.vue';
//一個(gè)個(gè)link對(duì)象 - 分類
import NotFound from './components/notFound.vue';
import Home from './components/home.vue';
//安裝插件
Vue.use(VueRouter);//掛載屬性
//創(chuàng)建路由對(duì)象并配置路由規(guī)則
/*let router = new VueRouter({
//routes
routes: [
//一個(gè)個(gè)link對(duì)象
{name: 'music',path: '/music_country',component: Music},
{name: 'movie',path: '/movie',component: Movie}
]
});
*/
//和上述注釋代碼相同
let router = new VueRouter();
router.addRoutes([
//重定向
/*方法一
* {path:'/',redirect:'/home'},
{path:'/home',component:Home}*/
//方法二:一勞永逸
{path:'/',redirect:{name:'home'}},
{name:'home',path:'/home',component:Home},
//404:最終無法匹配-->404
{path:'*',component:NotFound}
])
//new Vue 啟動(dòng) :構(gòu)建vue實(shí)例
new Vue({
el: '#app',
render: c => c(App),
//讓vue知道我們的路由規(guī)則
router:router,//可以簡(jiǎn)寫為router
})
2. app.vue文件
<template>
<div>
<div class="header">
頭部 - 導(dǎo)航欄目
</div>
<!--留坑,非常重要-->
<router-view class="main"></router-view>
<div class="footer">底部 - 版權(quán)信息</div>
</div>
</template>
<script>
export default {
data(){
return{
}
},
methods:{
}
}
</script>
<style scoped>
.header,.main,.footer{text-align: center;padding: 10px;}
.header{height:70px;background: yellowgreen;}
.main{height:300px;background: skyblue;}
.footer{height: 100px;background: hotpink;}
</style>
3. home.vue文件
<template>
?? ?<div>
?? ??? ?我是首頁
?? ?</div>
</template>
<script>
?? ?export default{
?? ??? ?data(){
?? ??? ??? ?return{
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ?},
?? ??? ?methods:{
?? ??? ??? ?goback(){
?? ??? ??? ??? ?this.$router.go(-1);
?? ??? ??? ?}
?? ??? ?}
?? ?}
</script>
<style scoped>
?? ?div{font-size: 30px;}
</style>4. notFound.vue文件
<template>
? <div>
? ?? ?您要訪問的頁面出去旅游去了...
? </div>
</template>
<script>
?? ?export default {
?? ? ?data(){
?? ? ? ?return{
?? ? ? ??
?? ? ? ?}
?? ? ?},
?? ? ?methods:{
?? ? ??? ?
?? ? ?}
?? ?}
</script>
<style scoped>
</style>以上就是“vue.js 重定向 和 404 等等相關(guān)的問題”的簡(jiǎn)單講述,可以作為demo演示,了解一下。希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue使用動(dòng)態(tài)添加路由(router.addRoutes)加載權(quán)限側(cè)邊欄的方式
- vue 解決addRoutes多次添加路由重復(fù)的操作
- vue addRoutes路由動(dòng)態(tài)加載操作
- 使用VueRouter的addRoutes方法實(shí)現(xiàn)動(dòng)態(tài)添加用戶的權(quán)限路由
- vue動(dòng)態(tài)添加路由addRoutes之不能將動(dòng)態(tài)路由存入緩存的解決
- vue 解決addRoutes動(dòng)態(tài)添加路由后刷新失效問題
- vue addRoutes實(shí)現(xiàn)動(dòng)態(tài)權(quán)限路由菜單的示例
- vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載
- vue-router4動(dòng)態(tài)路由刷新404/白屏的解決
- vue3動(dòng)態(tài)路由刷新后空白或者404問題的解決
- vue 項(xiàng)目中當(dāng)訪問路由不存在的時(shí)候默認(rèn)訪問404頁面操作
- vue?使用addRoutes動(dòng)態(tài)添加路由及刷新頁面跳轉(zhuǎn)404路由的問題解決方案
相關(guān)文章
詳解Vue項(xiàng)目在其他電腦npm run dev運(yùn)行報(bào)錯(cuò)的解決方法
這篇文章主要介紹了詳解Vue項(xiàng)目在其他電腦npm run dev運(yùn)行報(bào)錯(cuò)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
electron?dialog.showMessageBox的使用案例
Electron?Dialog?模塊提供了api來展示原生的系統(tǒng)對(duì)話框,本文主要介紹了electron?dialog.showMessageBox的使用案例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
vue實(shí)現(xiàn)一個(gè)懶加載的樹狀表格實(shí)例
這篇文章主要介紹了vue實(shí)現(xiàn)一個(gè)懶加載的樹狀表格實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
vue3使用defineModel實(shí)現(xiàn)父子組件雙向綁定
這篇文章主要個(gè)給大家介紹了在vue3中使用defineModel進(jìn)行父子組件中的雙向綁定,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01
ElementPlus el-message-box樣式錯(cuò)位問題及解決
這篇文章主要介紹了ElementPlus el-message-box樣式錯(cuò)位問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09

