日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本篇文章帶大家進行Vue學習,聊聊Vue2和Vue3中設置404界面的方法,希望對大家有所幫助!


聊聊Vue2和Vue3中怎么設置404界面


vue頁面中,如果跳轉了不存在的路由那么,那么頁面就會出現白屏狀態,為了解決這個問題,我們可以自己寫一個404界面,讓其跳轉過去。

一.vue2

1、index.js

在此文件中,一般存放的都是我們的路由信息,我們經常使用path:'*'來進行捕獲我們的路由,度過不存在那么我們就讓它進行跳轉至我們自定義的404頁面。

import Vue from 'vue'
import Router from 'vue-router'
import Homepage from '@/components/Homepage'
Vue.use(Router)
 
export default new Router({
  routes: [
    {
      path: '/',
      component: Homepage,
    },
    {
      path:'*',
      component:()=>import('../views/404.vue')
    }
  ]
})

注意:這個path一定要寫在最外面。


2、404.vue頁面

這個頁面通常我們可以自定義,一般包括跳轉某個頁面的超鏈接或者就是定時多長時間進行跳轉。

<template>
    <div>
        <p>
            頁面將在<span>{{ time }}</span>秒后自動跳轉首頁,<br>
            您也可以點擊這里跳轉<a href="/">首頁</a>
        </p>
    </div>
</template>
 
<script>
// 這里可以導入其他文件(比如:組件,工具js,第三方插件js,json文件,圖片文件等等)
 
export default {
    name: '',
    components: {
 
    },
    // 定義屬性
    data() {
        return {
            time: '10',
            time_end: null
        }
    },
    // 計算屬性,會監聽依賴屬性值隨之變化
    computed: {},
    // 監控data中的數據變化
    watch: {},
    // 方法集合
    methods: {
        GoIndex() {
            let _t = 9
            this.time_end = setInterval(() => {
                if (_t !== 0) {
                    this.time = _t--;
                } else {
                    this.$router.replace('/')
                    clearTimeout(this.time_end)
                    this.time_end = null
                }
            }, 1000)
        }
    },
    // 生命周期 - 創建完成(可以訪問當前this實例)
    created() {
        this.GoIndex()
    },
    // 生命周期 - 掛載完成(可以訪問DOM元素)
    mounted() {
 
    },
    beforeCreate() { }, // 生命周期 - 創建之前
    beforeMount() { }, // 生命周期 - 掛載之前
    beforeUpdate() { }, // 生命周期 - 更新之前
    updated() { }, // 生命周期 - 更新之后
    beforeDestroy() { }, // 生命周期 - 銷毀之前
    destroyed() {
        clearTimeout(this.time_end)
        this.time_end = null
    }, // 生命周期 - 銷毀完成
    activated() { }, // 如果頁面有keep-alive緩存功能,這個函數會觸發
}
</script>
 
<style scoped>
.not_found {
    width: 100%;
    height: 100%;
    background: url('../../static/img/404.gif') no-repeat;
    background-position: center;
    background-size: cover;
 
    p {
        position: absolute;
        top: 50%;
        left: 20%;
        transform: translate(-50%, 0);
        color: #fff;
        span{
            color: orange;
            font-family: '仿宋';
            font-size: 25px;
        }
        a {
            font-size: 30px;
            color: aqua;
            text-decoration: underline;
        }
    }
}
</style>

那么實現的效果就如下圖所示:


聊聊Vue2和Vue3中怎么設置404界面

404實現效果


二.vue3

為什么要分開說呢?因為在vue3中我們進行如下設置:

{
     path:'*',
     component:()=>import('../views/404.vue')
}

會產生錯誤,錯誤信息:Catch all routes ("*") must now be defined using a param with a custom regexp.,意思就是:現在必須使用與自定義Regexp的參數定義所有路由(“*”)。

那么官方是這么說的:

// plan on directly navigating to the not-found route using its name
{ path: '/:pathMatch(.*)*', name: 'not-found', component: NotFound },
// if you omit the last `*`, the `/` character in params will be encoded when resolving or pushing
{ path: '/:pathMatch(.*)', name: 'bad-not-found', component: NotFound },

那么我們vue2中的index.js文件中的代碼就變成了如下:

...
 
export default new Router({
  routes: [
    ...,
    {
      path:'/:pathMatch(.*)*',
      component:()=>import('../views/404.vue')
    }
    //或者
     {
      path:'/:pathMatch(.*)',
      component:()=>import('../views/404.vue')
    }
  ]
})


分享到:
標簽:Vue2設置404界面 Vue3設置404界面
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定