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 相关文章推荐
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 Javascript
node.js中的fs.rmdirSync方法使用说明
Dec 16 Javascript
全面解析Bootstrap中transition、affix的使用方法
May 30 Javascript
微信小程序 navigation API实例详解
Oct 02 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
解决AngualrJS页面刷新导致异常显示问题
Apr 20 Javascript
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
浅谈Node异步编程的机制
Oct 18 Javascript
Vue入门之数据绑定(小结)
Jan 08 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
Jun 28 Javascript
js实现选项卡效果
Mar 07 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 Socket写的POP3类
2013/10/30 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php curl常用的5个经典例子
2017/01/20 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
java script编程起步(第三课)
2007/01/10 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
python中的字符串内部换行方法
2018/07/19 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
用Python逐行分析文件方法
2019/01/28 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
节能宣传周活动总结
2014/05/08 职场文书
实训报告范文大全
2014/11/04 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
给学校的建议书400字
2015/09/14 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
如何利用Python实现一个论文降重工具
2021/07/09 Python
python井字棋游戏实现人机对战
2022/04/28 Python