Vue Router模式解析要点总结是什么?

更新于
2026-10-01 10:39:00
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1283个文字,预计阅读时间需要6分钟。

Vue Router模式解析要点总结是什么?

一、路由模式解析要讲解vue-router的路由模式,首先需要了解路由的基本概念。路由是由多个URL组成的,不同的URL可以对应不同的页面或组件。vue-router是Vue.js中用于实现单页面应用(SPA)的路由管理器。

Vue Router模式解析要点总结是什么?

简单来说,路由模式就是如何根据不同的URL来决定显示哪个组件。vue-router提供了多种路由模式,其中最常用的是hash模式和history模式。

1. hash模式:使用URL的hash部分(即#后面的部分)作为路由标识。例如,访问http://example.com/#/home时,hash为/#/home。hash模式不会触发实际的页面刷新,因此对服务器请求没有影响。

2. history模式:利用HTML5的history API,通过修改当前记录而不是hash部分来改变URL。在history模式下,访问http://example.com/home时,URL会变为http://example.com/home,但实际页面内容不会刷新。

二、Vue Router路由模式应用在实际开发中,选择哪种路由模式取决于具体需求。以下是一些应用场景:

1. 进行动态页面开发时,推荐使用history模式,因为它更符合用户习惯,且不会出现URL中带有#的情况。

2. 如果服务器不支持HTML5的history API,或者需要兼容老旧浏览器,可以使用hash模式。

3. 在进行服务器端渲染(SSR)时,history模式可能需要额外的配置,而hash模式则无需担心。

总之,了解vue-router的路由模式对于开发单页面应用至关重要。选择合适的路由模式,可以使应用更加流畅、易用。

一、路由模式解析

要讲vue-router的路由模式,首先要了解的一点就是路由是由多个URL组成的,使用不同的URL可以相应的导航到不同的位置。

如果有进行过服务器开发或者对music.163.com/#/friend
pan.baidu.com/disk/home#list/vmode=list

2、history路由

随着history api的到来,前端路由开始进化了,前面的hashchange,你只能改变#后面的url片段,而history api则给了前端完全的自由

history api可以分为两大部分:切换和修改

(1)切换历史状态

包括back、forward、go三个方法,对应浏览器的前进,后退,跳转操作,有同学说了,(谷歌)浏览器只有前进和后退,没有跳转,嗯,在前进后退上长按鼠标,会出来所有当前窗口的历史记录,从而可以跳转(也许叫跳更合适):

history.go(-2);//后退两次 history.go(2);//前进两次 history.back(); //后退 hsitory.forward(); //前进

(2)修改历史状态

包括了pushState、replaceState两个方法,这两个方法接收三个参数:stateObj,title,url

history.pushState({color:'red'}, 'red', 'red') window.onpopstate = function(event){ console.log(event.state) if(event.state && event.state.color === 'red'){ document.body.style.color = 'red'; } } history.back(); history.forward();

通过pushstate把页面的状态保存在state对象中,当页面的url再变回这个url时,可以通过event.state取到这个state对象,从而可以对页面状态进行还原,这里的页面状态就是页面字体颜色,其实滚动条的位置,阅读进度,组件的开关的这些页面状态都可以存储到state的里面。

通过history api,我们丢掉了丑陋的#,但是它也有个毛病:

不怕前进,不怕后退,就怕刷新,f5,(如果后端没有准备的话),因为刷新是实实在在地去请求服务器的。

在hash模式下,前端路由修改的是#中的信息,而浏览器请求时是不带它玩的,所以没有问题。但是在history下,你可以自由的修改path,当刷新时,如果服务器中没有相应的响应或者资源,会分分钟刷出一个404来。

(3)popstate实现history路由拦截,监听页面返回事件

当活动历史记录条目更改时,将触发popstate事件。

1、如果被激活的历史记录条目是通过对 history.pushState() 的调用创建的,或者受到对 history.replaceState() 的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。

2、需要注意的是调用 history.pushState() 或 history.replaceState() 用来在浏览历史中添加或修改记录,不会触发popstate事件;

只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back())

我们测试一下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div>测试一下</div> <script type="text/javascript"> if (window.history && window.history.pushState) { window.onpopstate = function(event) { console.log("location: " + document.location + ", state: " + JSON.stringify(event.state)); //window.history.go(1) //window.history.back() }; //window.addEventListener("popstate", function(e) { // window.location = 'www.baidu.com'; //}, false); !function() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); }(); } </script> </body> </html>

刷新时不打印,刷新多次,再后退,每次都有,直到为null

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计1283个文字,预计阅读时间需要6分钟。

Vue Router模式解析要点总结是什么?

一、路由模式解析要讲解vue-router的路由模式,首先需要了解路由的基本概念。路由是由多个URL组成的,不同的URL可以对应不同的页面或组件。vue-router是Vue.js中用于实现单页面应用(SPA)的路由管理器。

Vue Router模式解析要点总结是什么?

简单来说,路由模式就是如何根据不同的URL来决定显示哪个组件。vue-router提供了多种路由模式,其中最常用的是hash模式和history模式。

1. hash模式:使用URL的hash部分(即#后面的部分)作为路由标识。例如,访问http://example.com/#/home时,hash为/#/home。hash模式不会触发实际的页面刷新,因此对服务器请求没有影响。

2. history模式:利用HTML5的history API,通过修改当前记录而不是hash部分来改变URL。在history模式下,访问http://example.com/home时,URL会变为http://example.com/home,但实际页面内容不会刷新。

二、Vue Router路由模式应用在实际开发中,选择哪种路由模式取决于具体需求。以下是一些应用场景:

1. 进行动态页面开发时,推荐使用history模式,因为它更符合用户习惯,且不会出现URL中带有#的情况。

2. 如果服务器不支持HTML5的history API,或者需要兼容老旧浏览器,可以使用hash模式。

3. 在进行服务器端渲染(SSR)时,history模式可能需要额外的配置,而hash模式则无需担心。

总之,了解vue-router的路由模式对于开发单页面应用至关重要。选择合适的路由模式,可以使应用更加流畅、易用。

一、路由模式解析

要讲vue-router的路由模式,首先要了解的一点就是路由是由多个URL组成的,使用不同的URL可以相应的导航到不同的位置。

如果有进行过服务器开发或者对music.163.com/#/friend
pan.baidu.com/disk/home#list/vmode=list

2、history路由

随着history api的到来,前端路由开始进化了,前面的hashchange,你只能改变#后面的url片段,而history api则给了前端完全的自由

history api可以分为两大部分:切换和修改

(1)切换历史状态

包括back、forward、go三个方法,对应浏览器的前进,后退,跳转操作,有同学说了,(谷歌)浏览器只有前进和后退,没有跳转,嗯,在前进后退上长按鼠标,会出来所有当前窗口的历史记录,从而可以跳转(也许叫跳更合适):

history.go(-2);//后退两次 history.go(2);//前进两次 history.back(); //后退 hsitory.forward(); //前进

(2)修改历史状态

包括了pushState、replaceState两个方法,这两个方法接收三个参数:stateObj,title,url

history.pushState({color:'red'}, 'red', 'red') window.onpopstate = function(event){ console.log(event.state) if(event.state && event.state.color === 'red'){ document.body.style.color = 'red'; } } history.back(); history.forward();

通过pushstate把页面的状态保存在state对象中,当页面的url再变回这个url时,可以通过event.state取到这个state对象,从而可以对页面状态进行还原,这里的页面状态就是页面字体颜色,其实滚动条的位置,阅读进度,组件的开关的这些页面状态都可以存储到state的里面。

通过history api,我们丢掉了丑陋的#,但是它也有个毛病:

不怕前进,不怕后退,就怕刷新,f5,(如果后端没有准备的话),因为刷新是实实在在地去请求服务器的。

在hash模式下,前端路由修改的是#中的信息,而浏览器请求时是不带它玩的,所以没有问题。但是在history下,你可以自由的修改path,当刷新时,如果服务器中没有相应的响应或者资源,会分分钟刷出一个404来。

(3)popstate实现history路由拦截,监听页面返回事件

当活动历史记录条目更改时,将触发popstate事件。

1、如果被激活的历史记录条目是通过对 history.pushState() 的调用创建的,或者受到对 history.replaceState() 的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。

2、需要注意的是调用 history.pushState() 或 history.replaceState() 用来在浏览历史中添加或修改记录,不会触发popstate事件;

只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back())

我们测试一下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div>测试一下</div> <script type="text/javascript"> if (window.history && window.history.pushState) { window.onpopstate = function(event) { console.log("location: " + document.location + ", state: " + JSON.stringify(event.state)); //window.history.go(1) //window.history.back() }; //window.addEventListener("popstate", function(e) { // window.location = 'www.baidu.com'; //}, false); !function() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); }(); } </script> </body> </html>

刷新时不打印,刷新多次,再后退,每次都有,直到为null

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。