vue-router的两种模式的区别
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()替换到当前栈顶的路由
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的两种模式的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
您可能感兴趣的文章:
- vue-router的两种模式的区别
- vue-router中的hash和history两种模式的区别
- vue-router的两种模式(hash和history)及区别
- vue-router的两种模式的区别
- vue-router两种模式,到底什么情况下用hash,什么情况下用history模式呢?
- vue-router路由加载两种模式
- Vue-router 中hash模式和history模式的区别
- vue-router 路由模式及url中#号的解析
- 单例模式的两种实现方式及区别
- ASP.NET平台下MVC与WebForm两种模式区别(图解)
- vue-router HTML5 History 模式
- 浅谈vue项目4rs vue-router上线后history模式遇到的坑
- vue-router的push和replace的区别
- webpack + vue 在dev和production模式下的小小区别
- vue 中router.go;router.push和router.replace的区别
- PHP在Apache中两种工作方式的区别(CGI模式、Apache 模块DLL)
- vue-router使用 history 模式刷新后404问题
- 在vue-router中要使用选中样式的方法有两种:
- vue-router的两种使用方式
- linux下安装php两种模式区别