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 相关文章推荐
json2.js的初步学习与了解
Oct 06 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
Mar 27 Javascript
jquery使整个div区域可以点击的方法
Jun 24 Javascript
Angular.js如何从PHP读取后台数据
Mar 24 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 Javascript
微信QQ的二维码登录原理js代码解析
Jun 23 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
微信小程序 获取相册照片实例详解
Nov 16 Javascript
javascript 利用arguments实现可变长参数
Nov 21 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
详解Vue.directive 自定义指令
Mar 27 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
深入密码加salt原理的分析
2013/06/06 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
在Python中使用成员运算符的示例
2015/05/13 Python
Python序列操作之进阶篇
2016/12/08 Python
python并发编程之线程实例解析
2017/12/27 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
毕业生自荐信格式
2014/03/07 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
小学生暑假生活总结
2015/07/13 职场文书
教师素质教育心得体会
2016/01/19 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js