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

青灯夜游
Freigeben: 2023-02-17 18:18:58
nach vorne
2406 Leute haben es durchsucht

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')
    }
  ]
})
Nach dem Login kopieren

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>
Nach dem Login kopieren

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:&#39;*&#39;,
      component:()=>import(&#39;../views/404.vue&#39;)
    }
Nach dem Login kopieren

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 },
Nach dem Login kopieren

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;)
    }
  ]
})
Nach dem Login kopieren

(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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage