本篇内容介绍了“vue路由模式有哪些及怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
vue路由模式有:1、hash模式,使用URL的hash值来作为路由,支持所有浏览器;其url路径会出现“#”字符。2、history模式,依赖于HTML5 API(旧浏览器不支持)和HTTP服务端配置,没有后台配置的话,页面刷新时会出现404。3、abstract模式,适用于所有JavaScript环境,如果没有浏览器API,路由器将自动被强制进入此模式。
路由模式解析
这里要讲vue-router的路由模式,首先要了解的一点就是路由是由多个URL组成的,使用不同的URL可以相应的导航到不同的位置。如果有进行过服务器开发或者对http协议有所了解就会知道,浏览器中对页面的访问是无状态的,所以我们在切换不同的页面时都会重新进行请求。而实际使用vue和vue-router开发就会明白,在切换页面时是没有重新进行请求也没有重新刷新页面,使用起来就好像页面是有状态的,这是什么原因呢。这其实是借助了浏览器的History API来实现的,这样可以使得页面跳转而不刷新,页面的状态就被维持在浏览器中了。
一、hash模式
使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载,其显示的网路路径中会有 “#” 号,有一点点丑。这是最安全的模式,因为他兼容所有的浏览器和服务器。
1-特点:hash模式的url地址上有'#
'
<a href='#/aaa'>1(#/aaa)</a>
其中#/aaa就是我们的hash值,并且hash值并不会传给服务器
2-实现的原理:
原生的hashChange事件,主要是通过事件监听hash值得变化 window.onHashChange=function(){}
3-刷新页面:
不会不发生请求,页面不会有任何问题,不需要后端配合
而且hash模式的兼容性比较好.不过他因为带有'#'所以他的美观行没有history 模式好。
二、history模式
美化后的hash模式,会去掉路径中的 “#
”。依赖于Html5 的history,pushState API,所以要担心IE9以及一下的版本,感觉不用担心。并且还包括back、forward、go三个方法,对应浏览器的前进,后退,跳转操作。就是浏览器左上角的前进、后退等按钮进行的操作。
history.go(-2);//后退两次history.go(2);//前进两次history.back(); //后退hsitory.forward(); //前进
但是history也是有缺点的,不怕前进后退跳转,就怕刷新(如果后端没有准备的话),因为刷新是实实在在地去请求服务器了。
总结一下
hash模式(vue-router默认模式URL后面带#)使用URL的hash值来作为路由,支持所有浏览器;缺点:只能改变#后面的来实现路由跳转。
2:history模式(通过mode: 'history’来改变为history模式)HTML5 (BOM)History API 和服务器配置 缺点:怕刷新如果后端没有处理这个情况的时候前端刷新就是实实在在的请求服务器这样消耗的时间很多还很慢。
三、abstract模式
abstract 是vue路由中的第三种模式,本身是用来在不支持浏览器API的环境中,充当fallback,而不论是hash还是history模式都会对浏览器上的url产生作用,他一般要实现的功能就是在已存在的路由页面中内嵌其他的路由页面,而保持在浏览器当中依旧显示当前页面的路由path,这就是abstract这种与浏览器分离的路由模式。
适用于所有JavaScript环境,例如服务器端使用Node.js。如果没有浏览器API,路由器将自动被强制进入此模式。
然后在
const router = new VueRouter({routes, mode:'hash|history|abstract',})
这里进行切换。
“vue路由模式有哪些及怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!