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 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
用js判断是否为360浏览器的实现代码
Jan 15 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
Jul 05 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
详解小程序中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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
代码生成器 document.write()
2007/04/15 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
python使用urllib2提交http post请求的方法
2015/05/26 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
详解python中asyncio模块
2018/03/03 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
如何解决安装python3.6.1失败
2020/07/01 Python
python如何随机生成高强度密码
2020/08/19 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
劳资员岗位职责
2013/11/11 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
医德医风个人总结
2015/02/28 职场文书
办公室岗位职责范本
2015/04/11 职场文书
领导干部学习心得体会
2016/01/23 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书