vue-router的两种模式的区别


Posted in Javascript onMay 30, 2019

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()替换到当前栈顶的路由

vue-router的两种模式的区别

vue-router的两种模式的区别

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的两种模式的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
再次分享18个非常棒的jQuery表格插件
Apr 10 Javascript
JavaScript常用脚本汇总(一)
Mar 04 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 jQuery
python爬取安居客二手房网站数据(实例讲解)
Oct 19 Javascript
使用Angular CLI生成路由的方法
Mar 24 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 Javascript
JS中一些高效的魔法运算符总结
May 06 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 #Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
May 30 #Javascript
全面分析JavaScript 继承
May 30 #Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 #Javascript
vue组件三大核心概念图文详解
May 30 #Javascript
详解一次Vue低版本安卓白屏问题的解决过程
May 30 #Javascript
基于iview的router常用控制方式
May 30 #Javascript
You might like
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
超市优秀员工事迹材料
2014/05/01 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
个人收入证明模板
2014/09/18 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
小学教师年度个人总结
2015/02/05 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
出生证明格式
2015/06/15 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL