vue 프로젝트 에서 접근 경로 가 존재 하지 않 을 때 기본적으로 404 페이지 를 방문 합 니 다.
Vue 프로젝트 에서 방문 한 페이지 경로 가 존재 하지 않 거나 오류 가 발생 했 을 때 페이지 는 공백 으로 표 시 됩 니 다.그러나,일반적으로 우 리 는 url 에 접근 하 는 데 존재 하지 않 거나 잘못된 상황 에서 기본 404 페이지,즉 not found 페이지 를 추가 해 야 합 니 다.
일반적인 처리 방법 은:
마지막 으로 path:*를 추가 합 니 다.우선 순위 가 위 에서 아래로 길 을 찾 습 니 다.없 을 때 모두 404 페이지 를 가리 키 고 코드 는 다음 과 같 습 니 다.
const baseRoute = [
{ path: '/login', name: 'login', component: Login },
{path: '/', redirect: '/index', component: Layout, name: 'dashboard'},
// 404page
{ path: '/404', name: 'page404', component: page404 },
{
path: '/',
redirect: '/index',
component: Layout,
children: [
{
path: 'index',
name: 'index',
component: ModeIndex,
meta: {
title: '', //
icon: ''
}
},
{
path: 'project',
name: 'project',
component: Project,
meta: {
dynamic: true, //
title: ''
}
}
]
}
{
path: '*', // 404
redirect: '/404',
name: 'notFound',
hidden: true
}
]
const router = new Router({
routes: baseRoute
})
질문:이렇게 하면 좋 은 점 은 간단 하고 편리 하 다 는 것 입 니 다.그러나 제 코드 에 다음 과 같은 코드 가 추가 되 어 있 기 때문에 페이지 token 이 효력 을 잃 고 로그 인 할 때 현재 경 로 를 기억 하고 다음 에 다시 로그 인 할 때 지정 한 경로 로 바로 이동 합 니 다.
if (to.path.slice(1) !== '') {
router.push({
path: '/login',
query: {
redirect: to.path.slice(1)
}
})
} else {
router.push({
path: '/login'
})
}
바로 찾 을 수 없 는 모든 것 이 404 를 가리 키 기 때문에 처음으로 인터넷 주 소 를 모 르 는 사람 이 잘못 진 후에 redirect 는 404 를 가리 키 게 되 었 습 니 다.그러면 사용자 가 첫 번 째 로그 인 에 성공 한 후에 페이지 가 404 에 들 어가 체험 이 좋 지 않 고 제품 과 테스트 도 페이지 에 bug 가 생 긴 줄 알 았 습 니 다.이 문 제 를 해결 하기 위해 관련 자 료 를 찾 았 습 니 다.다음은 최적화 된 방법 입 니 다.최 적 화 된 설정 방식:
1、route --> index.js
끝부분 제거
const baseRoute = [
{ path: '/login', name: 'login', component: Login },
{path: '/', redirect: '/index', component: Layout, name: 'dashboard'},
// 404page
{path: '/404', component: page404, name: 'page404'},
{
path: '/',
redirect: '/index',
component: Layout,
children: [
{
path: 'index',
name: 'index',
component: ModeIndex,
meta: {
title: '', //
icon: ''
}
},
{
path: 'project',
name: 'project',
component: Project,
meta: {
dynamic: true, //
title: ''
}
}
]
},
// {
// path: '*', // 404
//redirect: '/404',
//name: 'notFound',
//hidden: true
//}
]
const router = new Router({
routes: baseRoute
})
2.router.beforeach 에서 to.matched 가 일치 하 는 경로 의 개 수 를 사용 하여 판단 조건 으로 하고 경로 가 일치 하지 않 으 면 404 페이지 로 이동 합 니 다.코드 는 다음 과 같 습 니 다.pemmision.js
코드 는 다음 과 같 습 니 다:
import router from './router'
import { getCookie } from './utils/auth'
// beforeEach token
const whiteList = ['/login'] //
// const userInfo = getUserInfo()
router.beforeEach((to, from, next) => {
console.log(to.matched)
//
if (getCookie('userId_dev')) {
// userId_dev /
if (to.path === '/login') {
next()
} else {
if (to.matched.length === 0) {
next('/404') // , , 404
}
next() //
}
//
} else {
if (whiteList.indexOf(to.path) !== -1) {
next()
} else {
//
// next('/login')
if (to.path.slice(1) !== '') {
if (to.matched.length === 0) {
router.push({
path: '/login'
})
} else {
router.push({
path: '/login',
query: {
redirect: to.path.slice(1)
}
})
}
} else {
router.push({
path: '/login'
})
}
}
}
})
이렇게 해서 처음부터 잘못 지고 404 로 넘 어 가 는 어색 함 이 해결 되 었 습 니 다!추가 지식:Vue 에서 사용자 가 잘못된 주 소 를 입력 하고 오류 알림 페이지 로 이동
1.동적 경로 에서 일부 경 로 는 잘못된 경로 이 고 잘못된 길 을 잘못된 알림 페이지 로 이동 시 킬 수 있 습 니 다.
구성 요소 의$router 속성의 원형 에 방법 이 있 습 니 다(this.$router)
(1)go 방법
(2)replace:잘못된 경 로 를 새로운 경로 로 바 꾸 고 잘못된 페이지 의 구성 요 소 를 만 듭 니 다.
a―b(존재 하지 않 는 경로)―c(c 로 b 를 대체 했다);그래서 경로 중 에 a--c
(3)push:a―b(존재 하지 않 는 경로)―c(b 뒤에 c 추가);그래서 경 로 는 a―b―c 이다.
이상 의 vue 프로젝트 에서 방문 경로 가 존재 하지 않 을 때 404 페이지 를 기본 으로 방문 하 는 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.