Heim >Web-Frontend >View.js >Lassen Sie uns darüber sprechen, wie Sie die 404-Schnittstelle in Vue2 und Vue3 einrichten

Lassen Sie uns darüber sprechen, wie Sie die 404-Schnittstelle in Vue2 und Vue3 einrichten

青灯夜游
青灯夜游nach vorne
2023-02-17 14:25:222385Durchsuche

Dieser Artikel führt Sie durch das Vue-Lernen und erläutert, wie Sie die 404-Schnittstelle in Vue2 und Vue3 einrichten. Ich hoffe, dass er Ihnen hilfreich sein wird!

Lassen Sie uns darüber sprechen, wie Sie die 404-Schnittstelle in Vue2 und Vue3 einrichten

Wenn auf der Vue-Seite eine nicht vorhandene Route übersprungen wird, wird die Seite in einem weißen Bildschirmzustand angezeigt. Um dieses Problem zu lösen, können wir selbst eine 404-Schnittstelle schreiben und sie springen lassen Es.

一.vue2

1.index.js

In dieser Datei werden im Allgemeinen unsere Routing-Informationen gespeichert:‘*‘, um unser Routing zu erfassen. Wenn es nicht existiert, Dann lassen wir es zu unserer benutzerdefinierten 404-Seite springen.

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

Hinweis: Dieser Weg muss außen angegeben werden. [Verwandte Empfehlungen: vuejs-Video-Tutorial, Web-Front-End-Entwicklung]

2.404.vue-Seite

Normalerweise können wir diese Seite anpassen, die im Allgemeinen einen Hyperlink enthält, um zu einer bestimmten Seite zu springen oder ein Timing Wie lange es dauert, bis man springt.

<template>
    <div>
        <p>
            页面将在<span>{{ time }}</span>秒后自动跳转首页,<br>
            您也可以点击这里跳转<a href="/">首页</a>
        </p>
    </div>
</template>

<script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)

export default {
    name: &#39;&#39;,
    components: {

    },
    // 定义属性
    data() {
        return {
            time: &#39;10&#39;,
            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(&#39;/&#39;)
                    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(&#39;../../static/img/404.gif&#39;) 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: &#39;仿宋&#39;;
            font-size: 25px;
        }
        a {
            font-size: 30px;
            color: aqua;
            text-decoration: underline;
        }
    }
}
</style>

Dann ist der erzielte Effekt wie in der folgenden Abbildung dargestellt:

Lassen Sie uns darüber sprechen, wie Sie die 404-Schnittstelle in Vue2 und Vue3 einrichten

404-Implementierungseffekt

II.vue3

Warum sollten wir separat darüber sprechen? Denn in vue3 nehmen wir folgende Einstellungen vor:

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

wird einen Fehler erzeugen, die Fehlermeldung: Catch allroutes ("*") muss jetzt mit einem Parameter mit einem benutzerdefinierten regulären Ausdruck definiert werden, was bedeutet: Jetzt muss ein benutzerdefinierter verwendet werden Regexp Die Parameter definieren alle Routen („*“).

Dann sagte der Beamte Folgendes:

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

Dann sieht der Code in der index.js-Datei in unserem vue2 wie folgt aus:

...

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

(Teilen von Lernvideos: vuejs-Einführungs-Tutorial, Grundlegendes Programmiervideo)

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie die 404-Schnittstelle in Vue2 und Vue3 einrichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen