uniapp 새로 고침 후 경로가 손실됨
uniapp을 사용하여 애플리케이션을 개발할 때 페이지 새로 고침 후 경로 손실 문제가 자주 발생합니다. 이 문제는 개발 과정에서 매우 흔히 발생하지만 해결하는 것은 그리 어렵지 않습니다. 이 기사에서는 이 문제의 원인과 해결 방법을 살펴보겠습니다.
1. 경로상실 문제는 왜 발생하나요?
uniapp에서는 라우팅 관리를 위해 vue-router를 사용합니다. vue-router에서는 라우팅 관리가 브라우저의 URL 주소를 통해 구현됩니다. 페이지를 새로 고치면 브라우저가 페이지를 다시 로드하고 URL 주소도 새로 고치므로 라우팅 손실 문제가 발생합니다.
이 문제를 더 잘 이해하기 위해 먼저 vue-router의 라우팅 모드를 살펴보겠습니다. vue-router는 해시와 히스토리라는 두 가지 라우팅 모드를 제공합니다. 해시 패턴은 # 기호로 시작하는 URL 주소 부분을 나타냅니다(예: http://example.com/#/home). 기록 모드는 # 기호가 포함되지 않은 URL 주소 부분을 나타냅니다(예: http://example.com/home).
해시 모드에서는 window.location.hash를 통해 라우팅 관리가 구현됩니다. 페이지를 새로 고칠 때 브라우저는 페이지를 다시 로드하고 window.location.hash는 변경되지 않으므로 라우팅 정보가 손실되지 않습니다. 기록 모드에서는 window.location.pathname을 통해 라우팅 관리가 구현됩니다. 페이지를 새로 고치면 브라우저가 페이지를 다시 로드하고 window.location.pathname이 변경되어 라우팅 정보가 손실되는 문제가 발생합니다.
2. 경로 손실 문제를 피하는 방법은 무엇입니까?
경로 손실 문제를 피하기 위해 다음과 같은 조치를 취할 수 있습니다.
- 해시 모드 사용을 강제합니다.
uniapp에서는 main에서 모드 속성을 설정하여 해시 모드를 강제로 사용할 수 있습니다. js.js. 샘플 코드는 다음과 같습니다.
import Vue from 'vue' import App from './App' import router from './router' Vue.config.productionTip = false new Vue({ el: '#app', router, mode: 'hash', // 强制使用hash模式 render: h => h(App) })
- 페이지 새로고침 전 라우팅 정보 저장
window.onbeforeunload 이벤트에서 localStorage에 라우팅 정보를 저장할 수 있습니다. 코드 예시는 다음과 같습니다.
mounted() { // 监听onbeforeunload事件,保存路由信息 window.onbeforeunload = () => { localStorage.setItem('lastRoute', this.$route.fullPath) } }
페이지가 로드된 후 localStorage에 lastRoute가 있는지 확인하여 이전 라우팅 페이지로 이동해야 하는지 여부를 결정할 수 있습니다. 코드 예시는 다음과 같습니다.
mounted() { // 判断是否存在lastRoute,若存在则跳转到之前的路由页面 const lastRoute = localStorage.getItem('lastRoute') if (lastRoute) { localStorage.removeItem('lastRoute') this.$router.replace(lastRoute) } }
- 루트 점프 전 후크 기능 사용
각 루트 점프 전 beforeEach 후크 함수를 사용하여 점프 전 현재 라우팅 정보를 저장하고 이후 복원할 수 있습니다. 페이지가 새로 고쳐집니다. 라우팅 상태입니다. 코드 예시는 다음과 같습니다.
router.beforeEach((to, from, next) => { localStorage.setItem('lastRoute', from.fullPath) // 保存当前路由信息 next() })
페이지가 로드된 후 localStorage에 lastRoute가 있는지 확인하여 이전 라우팅 페이지로 이동해야 하는지 여부를 결정할 수 있습니다. 코드 예시는 다음과 같습니다.
mounted() { // 判断是否存在lastRoute,若存在则跳转到之前的路由页面 const lastRoute = localStorage.getItem('lastRoute') if (lastRoute) { localStorage.removeItem('lastRoute') this.$router.replace(lastRoute) } }
요약:
라우팅 손실은 uniapp 개발에서 흔히 발생하는 문제이지만 위의 세 가지 방법을 통해 이 문제를 쉽게 피할 수 있습니다. uniapp을 사용하여 애플리케이션을 개발할 때 vue-router의 라우팅 모드를 완전히 이해하고 경로 손실 문제를 해결하기 위한 적절한 조치를 취해야 합니다.
위 내용은 uniapp 새로 고침 후 경로가 손실됨의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 장치, 통합, 기능, UI/UX, 성능, 크로스 플랫폼 및 보안 테스트를 포함한 UniAPP 응용 프로그램에 대한 다양한 테스트 유형에 대해 설명합니다. 또한 크로스 플랫폼 호환성을 보장하고 JES와 같은 도구를 권장합니다.

이 기사는 코드 최적화, 리소스 관리 및 코드 분할 및 게으른로드와 같은 기술에 중점을 둔 UNIAPP 패키지 크기를 줄이기위한 전략에 대해 설명합니다.

이 기사는 HBuilderx, WeChat 개발자 도구 및 Chrome Devtools와 같은 도구에 중점을 둔 UniAPP 개발을위한 디버깅 도구 및 모범 사례에 대해 설명합니다.

게으른 하중은 비 약한 리소스를 방어하여 사이트 성능을 향상시켜로드 시간 및 데이터 사용량을 줄입니다. 주요 관행에는 중요한 콘텐츠 우선 순위를 정하고 효율적인 API 사용이 포함됩니다.

이 기사에서는 압축, 반응 형 디자인, 게으른로드, 캐싱 및 Webp 형식 사용을 통해 웹 성능을 향상시키기 위해 UniAPP의 이미지 최적화에 대해 설명합니다.

이 기사는 UniAPP 로딩 속도를 최적화하고 번들 크기 최소화, 미디어 최적화, 캐싱, 코드 분할, CDN 사용 및 네트워크 요청 감소에 중점을 둔 전략에 대해 설명합니다.

이 기사는 UNIAPP에서 네트워크 요청을 최적화하고 대기 시간을 줄이고 캐싱 구현 및 모니터링 도구를 사용하여 응용 프로그램 성능을 향상시키는 전략에 대해 설명합니다.

이 기사는 과도한 글로벌 데이터 사용 및 비효율적 인 데이터 바인딩과 같은 UniAPP 개발의 일반적인 성능 방지 방지에 대해 설명하며, 더 나은 앱 성능을 위해 이러한 문제를 식별하고 완화하는 전략을 제공합니다.
