목차
1. 외관
二、功能
三、回车刷新
四、使用场景
" >2. 기능

웹 프론트엔드 View.js Vue의 해시 라우팅과 히스토리 라우팅의 차이점에 대한 간략한 분석

Vue의 해시 라우팅과 히스토리 라우팅의 차이점에 대한 간략한 분석

Nov 12, 2021 pm 07:29 PM
vue

Vue 또는 React와 같은 프런트엔드 렌더링을 사용할 때 일반적으로 해시 라우팅과 히스토리 라우팅이라는 두 가지 라우팅 방법이 있습니다. 그렇다면 이 두 가지 라우팅 방법의 차이점은 무엇입니까? 아래에 소개해드리도록 하겠습니다. 도움이 되셨으면 좋겠습니다!

Vue의 해시 라우팅과 히스토리 라우팅의 차이점에 대한 간략한 분석

해시 라우팅과 히스토리 라우팅 두 모드의 차이점을 다음과 같은 측면에서 정리해보자.

1. 외관

hash: 즉, 주소의 # 기호. 예를 들어 URL: http://www.abc.com/#/hello, hash 값은 #/hello입니다. 해시가 URL에 나타나더라도 HTTP 요청에는 포함되지 않고 백엔드에 전혀 영향을 미치지 않으므로 해시를 변경해도 페이지가 다시 로드되지 않는 것이 특징입니다. [관련 권장 사항: "vue.js tutorialhash:  即地址栏 URL 中的#符号。 比如这个 URL:http://www.abc.com/#/hellohash 的值为 #/hello。它的特点在于:hash 虽然出现在 URL 中, 但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。【相关推荐:《vue.js教程》】

history: 地址栏中没有 #。比如这个 URL:http://www.abc.com/hello,更美观,是个正常的url,适合推广宣传。

二、功能

history:  在开发app的时候有分享页面,这个分享出去的页面就是用vue或是react做的,咱们把这个页面分享到第三方的app里,有的app里面url是不允许带有#号的,所以要将#号去除那么就要使用history模式,但是使用history模式还有一个问题就是,在访问二级页面的时候,做刷新操作,会出现404错误,那么就需要和后端人配合,让他配置一下apache或是nginx的url重定向,重定向到你的首页路由上就好了。

三、回车刷新

  • hash: 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面;

  • history: 利用了 HTML5 History Interface 中新增的 pushState() replaceState() 方法。

    这两个方法应用于浏览器的历史记录栈,在当前已有的 back()forward()go() 方法的基础之上,这两个方法提供了对历史记录进行修改的功能。当使用这两个方法执行修改时,只能改变当前地址栏的 URL,但浏览器不会向后端发送请求,也不会触发popstate事件的执行,一般会出现404,这时候就需要和后端人配合,设置重定向。

四、使用场景

一般情况下,hash 和 history 都可以,如果你是个颜值控,对 # 符号夹杂在 URL 里有些不爽。

如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成URL 跳转而无须重新加载页面。调用 history.pushState() 相比于直接修改 hash,存在以下优势:

  1. pushState() 设置的新 URL 可以是与当前 URL 同源的任意 URL;而 hash 只可修改 # 后面的部分,因此只能设置与当前 URL 同文档的 URL;

  2. pushState() 设置的新 URL 可以与当前 URL 一模一样,这样也会把记录添加到栈中;而 hash 设置的新值必须与原来不一样才会触发动作将记录添加到栈中;

  3. ushState() 通过 stateObject 参数可以添加任意类型的数据到记录中;而 hash 只可添加短字符串pushState()"]

  4. 역사: 주소에 bar #가 없습니다. 예를 들어 http://www.abc.com/hello URL은 더 아름답고 일반 URL이므로 홍보에 적합합니다.

2. 기능

history: 앱을 개발할 때 공유 페이지가 있는데, 이 공유 페이지를 공유합니다. 일부 앱에서는 URL에 # 번호를 포함하는 것이 허용되지 않으므로 # 번호를 제거하려면 다음을 수행해야 합니다. 기록 모드를 사용하지만 기록 모드 사용의 또 다른 문제는 보조 페이지에 액세스할 때 새로 고침 작업 중에 404 오류가 표시된다는 것입니다. 그런 다음 백엔드 담당자와 협력하여 아파치의 URL 리디렉션을 구성하도록 해야 합니다. nginx.Directing, 홈페이지 경로로 리디렉션하면 됩니다.

3. Enter를 눌러 새로고침하세요
  • hash: URL에는 표시되지만 URL에는 포함되지 않습니다. HTTP 요청은 백엔드에 전혀 영향을 미치지 않으므로 해시를 변경해도 페이지가 다시 로드되지 않습니다.

  • history: 새로운 pushState() HTML5 히스토리 인터페이스 > 및 <code>replaceState() 메소드의 code> 이 두 가지 메소드는 브라우저의 히스토리 스택에 적용되며, 현재 존재하는 back(), forward(), go()에 기반합니다. code> 메소드에서 이 두 가지 메소드는 과거 기록을 수정하는 기능을 제공합니다. 수정을 수행하기 위해 이 두 가지 방법을 사용하는 경우 <strong>현재 주소 표시줄의 URL만 변경할 수 있지만 브라우저는 백엔드에 요청을 보내지 않으며 일반적으로 404의 popstate 이벤트 실행을 트리거하지 않습니다. 이 때 리디렉션을 설정하려면 백엔드 담당자와 협력해야 합니다. </strong>🎜🎜

4. 사용 시나리오 🎜🎜일반적으로 해시와 히스토리 모두 허용됩니다. URL에 /code> 기호가 섞여 있어서 좀 불편하네요. 🎜🎜보기 흉한 해시를 원하지 않는 경우에는 History.pushState API를 최대한 활용하여 페이지를 다시 로드하지 않고도 URL 점프를 완료하는 라우팅 기록 모드를 사용할 수 있습니다. 해시를 직접 수정하는 것과 비교할 때, History.pushState()를 호출하면 다음과 같은 이점이 있습니다. 🎜
  1. 🎜pushState() 새 URL 세트는 다음과 동일한 출처를 가진 모든 URL이 될 수 있습니다. 현재 URL; 해시는 # 뒤의 부분만 수정할 수 있으므로 현재 URL과 동일한 문서의 URL만 설정할 수 있습니다. 🎜🎜
  2. 🎜pushState() 새 URL 설정; 현재 URL과 정확히 동일할 수 있으므로 레코드가 스택에 추가되는 작업을 트리거하려면 해시에 의해 설정된 새 값이 달라야 합니다. 🎜🎜
  3. 🎜ushState()는 stateObject 매개변수를 통해 전달될 수 있습니다. 레코드에 모든 유형의 데이터를 추가하세요. 반면 해시는 짧은 문자열 pushState()만 추가할 수 있으며 추가적으로 나중에 사용하기 위한 title 속성입니다. 🎜🎜🎜🎜 5. 요약🎜🎜 전통적인 라우팅은 사용자가 URL에 액세스하면 해당 서버가 요청을 받은 다음 URL의 경로를 구문 분석하여 해당 처리 로직을 실행하여 경로 배포를 완료하는 것입니다. 🎜🎜프런트엔드 라우팅은 서버를 포함하지 않으며 해시 또는 HTML5 히스토리 API를 사용하여 프런트엔드에서 구현됩니다. 일반적으로 다양한 콘텐츠를 표시하고 전환하는 데 사용됩니다. 🎜🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 비디오🎜를 방문하세요! ! 🎜

위 내용은 Vue의 해시 라우팅과 히스토리 라우팅의 차이점에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Vue에서 부트 스트랩을 사용하는 방법 Vue에서 부트 스트랩을 사용하는 방법 Apr 07, 2025 pm 11:33 PM

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

Vue 용 버튼에 기능을 추가하는 방법 Vue 용 버튼에 기능을 추가하는 방법 Apr 08, 2025 am 08:51 AM

HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

Vue에서 시계를 사용하는 방법 Vue에서 시계를 사용하는 방법 Apr 07, 2025 pm 11:36 PM

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

Vue가 이전 페이지로 돌아 오는 방법 Vue가 이전 페이지로 돌아 오는 방법 Apr 07, 2025 pm 11:30 PM

vue.js는 이전 페이지로 돌아갈 수있는 네 가지 방법이 있습니다. $ router.go (-1) $ router.back () 사용 & lt; router-link to = & quot;/quot; Component Window.history.back () 및 메소드 선택은 장면에 따라 다릅니다.

Vue 다중 페이지 개발은 무엇을 의미합니까? Vue 다중 페이지 개발은 무엇을 의미합니까? Apr 07, 2025 pm 11:57 PM

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 ​​관리하고 유지 관리 할 수 ​​있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 ​​있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

React vs. Vue : Netflix는 어떤 프레임 워크를 사용합니까? React vs. Vue : Netflix는 어떤 프레임 워크를 사용합니까? Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkCalled "Gibbon"BuiltonReact, NotreactorVuedirectly.1) TeamExperience : 2) ProjectComplexity : vueforsimplerProjects, 3) CustomizationNeeds : reactoffersmoreflex.4)

Vue Traversal 사용 방법 Vue Traversal 사용 방법 Apr 07, 2025 pm 11:48 PM

vue.js가 트래버스 어레이 및 객체에 대한 세 가지 일반적인 방법이 있습니다. V- 결합 지시문은 V-FOR와 함께 사용하여 각 요소의 속성 값을 동적으로 설정할 수 있습니다. .MAP 메소드는 배열 요소를 새 배열로 변환 할 수 있습니다.

vue.js로 JS 파일을 참조하는 방법 vue.js로 JS 파일을 참조하는 방법 Apr 07, 2025 pm 11:27 PM

vue.js에서 JS 파일을 참조하는 세 가지 방법이 있습니다. & lt; script & gt; 꼬리표;; mounted () 라이프 사이클 후크를 사용한 동적 가져 오기; Vuex State Management Library를 통해 수입.

See all articles