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 相关文章推荐
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
Apr 12 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
Sep 28 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
Nov 24 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
vuex vue简单使用知识点总结
Aug 29 Javascript
使用webpack将ES6转化ES5的实现方法
Oct 13 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批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
js中new一个对象的过程
2017/02/20 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
大专生找工作自荐书
2014/06/10 职场文书
妈妈活动方案
2014/08/15 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
公民授权委托书范本
2014/09/17 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书