当前位置: 移动技术网 > IT编程>开发语言>JavaScript > vue-router的两种模式的区别

vue-router的两种模式的区别

2019年07月19日  | 移动技术网IT编程  | 我要评论

1、大家都知道vue是一种单页应用,单页应用就是仅在页面初始化的时候加载相应的html/css/js一单页面加载完成,不会因为用户的操作而进行页面的重新加载或者跳转,用javascript动态的变化html的内容

优点: 良好的交互体验,用户不需要刷新页面,页面显示流畅, 良好的前后端工作分离模式,减轻服务器压力,
缺点: 不利于seo,初次加载耗时比较多

2、hash模式

vue-router默认的是hash模式—使用url的hash来模拟一个完整的url,于是当url改变的时候,页面不会重新加载,也就是单页应用了,当#后面的hash发生变化,不会导致浏览器向服务器发出请求,浏览器不发出请求就不会刷新页面,并且会触发haschange这个事件,通过监听hash值的变化来实现更新页面部分内容的操作

对于hash模式会创建hashhistory对象,在访问不同的路由的时候,会发生两件事:
hashhistory.push()将新的路由添加到浏览器访问的历史的栈顶,和hashistory.replace()替换到当前栈顶的路由

3、history模式

主要使用html5的pushstate()和replacestate()这两个api来实现的,pushstate()可以改变url地址且不会发送请求,replacestate()可以读取历史记录栈,还可以对浏览器记录进行修改

window.history.pushstate(stateobject, title, url)
 window.history.replacestate(stateobject, title, url)

包括back,forward , go 三个方法

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

区别:

前面的hashchange,你只能改变#后面的url片段。而pushstate设置的新url可以是与当前url同源的任意url。
history模式则会将url修改得就和正常请求后端的url一样,如后端没有配置对应/user/id的路由处理,则会返回404错误

总结

以上所述是小编给大家介绍的vue-router的两种模式的区别,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网