>  기사  >  웹 프론트엔드  >  vue에서 기록과 해시의 차이점은 무엇입니까

vue에서 기록과 해시의 차이점은 무엇입니까

WBOY
WBOY원래의
2022-03-17 15:48:2624732검색

차이점: 1. 해시 경로에는 주소 표시줄의 URL에 "#"이 있지만 기록 경로에는 없습니다. 2. Enter 키를 눌러 새로 고침 작업을 수행하면 해시 경로가 해당 페이지에 로드됩니다. 주소 표시줄, 기록 경로에는 일반적으로 404 오류가 표시됩니다. 3. 해시는 일부 낮은 버전의 브라우저를 지원하지만 기록은 지원하지 않습니다.

vue에서 기록과 해시의 차이점은 무엇입니까

이 기사의 운영 환경: Windows 10 시스템, Vue 버전 2.9.6, DELL G3 컴퓨터.

vue에서 기록과 해시의 차이점은 무엇인가요?

  • 1. 해시 경로는 주소 표시줄 URL에 #이 있으며 window.location.hash로 읽혀집니다. 기록 경로가 더 좋아 보이지는 않습니다

  • 2 Enter를 눌러 새로고침하면 해시 경로가 주소 표시줄에 해당하는 페이지에 로드되는 반면 기록 경로는 일반적으로 404 오류를 보고합니다(새로 고침은 네트워크 요청입니다). , 백엔드 준비가 없으면 오류가 보고됩니다.)

  • 3. 해시 라우팅은 하위 버전의 브라우저를 지원하는 반면, 기록 라우팅은 HTML5의 새로운 API입니다.

  • 4.hash의 특징은 URL에 나타나기는 하지만 http 요청에는 포함되지 않아 백엔드에 아무런 영향을 주지 않기 때문에 해시를 변경해도 페이지가 다시 로드되지 않으므로 이 역시 마찬가지입니다. 단일 페이지 신청에 필수적입니다.

  • 5.history는 브라우저의 기록 스택을 사용합니다. 이전에는 뒤로, 앞으로, 이동 메서드가 있었지만 나중에 HTML5에는 기록 기록을 수정하는 기능을 제공하는 pushState() 및 replacementState() 메서드가 추가되었습니다. 그러나 수정 시 현재 URL이 변경되더라도 브라우저는 즉시 백엔드에 요청을 보내지 않습니다.

  • 6. 이 기록 모드에는 백그라운드 구성 지원이 필요합니다. 예를 들어 프로젝트 홈페이지에 가면 모든 것이 정상이고 액세스할 수 있지만 페이지를 새로 고치거나 경로에 직접 액세스하면 404가 반환됩니다. 기록 모드에서는 window.history만 있기 때문입니다. 브라우저 주소 표시줄의 경로를 변경하려면 http 요청이 시작되지 않지만 브라우저에 이 주소를 직접 입력하면 서버에 대한 http 요청을 시작해야 하는데 이 대상이 존재하지 않습니다. 서버이므로 404를 반환합니다

Summary

물론 역사가 모든 면에서 좋은 것은 아닙니다. SPA는 브라우저에서 사용하기 쉽지만 URL을 통해 백엔드에 대한 HTTP 요청을 실제로 시작해야 하는 경우 두 가지의 차이점이 있습니다. 특히 사용자가 수동으로 URL을 입력하고 Enter 키를 누르거나 브라우저를 새로 고치는(다시 시작하는) 경우에는 더욱 그렇습니다.

1: 해시 모드에서는 http://www.abc.com과 같이 해시 기호 앞의 콘텐츠만 요청에 포함됩니다. 따라서 백엔드의 경우 라우팅이 완전히 적용되지 않더라도 404 오류는 반환되지 않습니다.

2: 기록 모드에서 프런트 엔드 URL은 실제로 백엔드에 대한 요청을 시작하는 URL과 일치해야 합니다. 예: http://www.abc.com/book/id. 백엔드에 /book/id에 대한 라우팅 처리가 부족하면 404 오류가 반환됩니다.

문제 해결 방법:

404 오류 해결 방법: 온라인에 소개된 많은 방법이 작동하지 않습니다. URL 재작성 모듈을 설치하고 재작성 규칙을 구성한 후 index.html을 가리키거나 URL 재작성으로 생성된 web.config 파일을 웹사이트의 루트 디렉터리에 직접 배치합니다.

【관련 추천: "vue.js tutorial"】

위 내용은 vue에서 기록과 해시의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.