이 기사에서는 Vue 학습을 안내하고 Vue2 및 Vue3에서 404 인터페이스를 설정하는 방법에 대해 설명합니다.
vue 페이지에서 존재하지 않는 경로가 점프되면 페이지가 흰색 화면 상태로 나타납니다. 이 문제를 해결하기 위해 404 인터페이스를 직접 작성하여 점프하도록 할 수 있습니다. 그것.
이 파일에는 일반적으로 경로를 캡처하기 위해 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') } ] })
참고: 이 경로는 외부에 작성해야 합니다. [관련 권장 사항: vuejs 비디오 튜토리얼, web front-end development]
보통 우리는 이 페이지를 사용자 정의할 수 있는데, 일반적으로 특정 페이지로 이동하는 하이퍼링크를 포함하거나 타이밍 점프하는데 걸리는 시간.
<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>
그러면 달성된 효과는 아래 그림과 같습니다.
404 구현 효과
왜 따로 이야기해야 할까요? vue3에서 다음과 같이 설정했기 때문에:
{ path:'*', component:()=>import('../views/404.vue') }
는 오류를 생성합니다. 다음 오류 메시지: 이제 모든 경로 포착("*")은 사용자 정의 정규식과 함께 매개변수를 사용하여 정의되어야 합니다. 즉, 이제 사용자 정의를 사용해야 합니다. 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') } ] })
(학습 영상 공유: vuejs 입문 튜토리얼, 기본 프로그래밍 영상)
위 내용은 Vue2 및 Vue3에서 404 인터페이스를 설정하는 방법에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!