Rumah > Artikel > hujung hadapan web > Mari kita bincangkan tentang cara menyediakan antara muka 404 dalam Vue2 dan Vue3
Artikel ini akan membawa anda melalui pembelajaran Vue dan bercakap tentang cara menyediakan antara muka 404 dalam Vue2 dan Vue3 saya harap ia akan membantu semua orang.
Dalam halaman vue, jika laluan yang tidak wujud dilompat, maka halaman tersebut akan muncul dalam keadaan skrin putih Untuk menyelesaikan masalah ini, kita boleh tulis antara muka 404 sendiri , biarkan ia melompat.
Dalam fail ini, secara amnya Apa disimpan ialah maklumat penghalaan kami. Kami sering menggunakan laluan:'*' untuk menangkap penghalaan kami Jika ia tidak wujud, kami akan membiarkannya melompat ke halaman 404 kami yang disesuaikan.
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') } ] })
Nota: Laluan ini mesti ditulis di luar. [Cadangan berkaitan: tutorial video vuejs, pembangunan bahagian hadapan web]
Kami biasanya boleh menyesuaikan halaman ini, yang biasanya termasuk hiperpautan untuk melompat ke halaman tertentu atau jumlah masa yang ditetapkan untuk melompat.
<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>
Kemudian kesan yang dicapai adalah seperti yang ditunjukkan di bawah:
404 kesan
Mengapa kita bercakap tentang mereka secara berasingan? Kerana dalam vue3 kami membuat tetapan berikut:
{ path:'*', component:()=>import('../views/404.vue') }
akan menjana ralat, mesej ralat: Tangkap semua laluan ("*") kini mesti ditakrifkan menggunakan param dengan regexp tersuai, yang bermaksud : kini Semua laluan mesti ditakrifkan dengan parameter Regexp tersuai ("*").
Kemudian pegawai itu berkata begini:
// 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 },
Kemudian kod dalam fail index.js kami dalam vue2 menjadi seperti berikut:
... export default new Router({ routes: [ ..., { path:'/:pathMatch(.*)*', component:()=>import('../views/404.vue') } //或者 { path:'/:pathMatch(.*)', component:()=>import('../views/404.vue') } ] })
( Mempelajari perkongsian video: Tutorial pengenalan Vuejs, Video pengaturcaraan asas)
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menyediakan antara muka 404 dalam Vue2 dan Vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!