Maison  >  Article  >  interface Web  >  Parlons de la façon de configurer l'interface 404 dans Vue2 et Vue3

Parlons de la façon de configurer l'interface 404 dans Vue2 et Vue3

青灯夜游
青灯夜游avant
2023-02-17 14:25:222333parcourir

Cet article vous guidera à travers l'apprentissage de Vue et expliquera comment configurer l'interface 404 dans Vue2 et Vue3. J'espère qu'il vous sera utile !

Parlons de la façon de configurer l'interface 404 dans Vue2 et Vue3

Dans la page vue, si un itinéraire qui n'existe pas est sauté, alors la page apparaîtra dans un état d'écran blanc. Afin de résoudre ce problème, nous pouvons écrire nous-mêmes une interface 404 et la laisser accéder. il.

一.vue2

1.index.js

Dans ce fichier, nos informations de routage sont généralement stockées Nous utilisons souvent path:'*' pour capturer notre routage, s'il n'existe pas, nous le laisserons ensuite accéder à notre page 404 personnalisée.

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

Remarque : Ce chemin doit être écrit à l'extérieur. [Recommandations associées : tutoriel vidéo vuejs, développement web front-end]

Page 2.404.vue

Habituellement, nous pouvons personnaliser cette page, qui comprend généralement un lien hypertexte pour accéder à une certaine page ou un timing Combien de temps faut-il pour sauter.

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

Ensuite, l'effet obtenu est celui indiqué dans la figure ci-dessous :

Parlons de la façon de configurer linterface 404 dans Vue2 et Vue3

Effet de mise en œuvre 404

II.vue3

Pourquoi devrions-nous en parler séparément ? Parce que dans vue3 nous effectuons les réglages suivants :

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

générera une erreur, le message d'erreur : Catch all routes ("*") doit maintenant être défini à l'aide d'un paramètre avec une expression rationnelle personnalisée, ce qui signifie : il faut maintenant utiliser une expression rationnelle personnalisée Regexp Les paramètres définissent toutes les routes ("*").

Ensuite, le responsable a dit ceci :

// 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 },

Ensuite, le code dans le fichier index.js dans notre vue2 devient le suivant :

...

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

(Partage de vidéos d'apprentissage : Tutoriel d'introduction à vuejs, Vidéo de programmation de base)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer