1.url不动式
url完全不动,即你的页面怎么改变,怎么跳转url都不会改变。这种情况的原理 就是纯ajax拿到页面后替换原页面中的元素,刷新页面就是首页
2.带hash(#)式
这种相对于第一种的话刷新页面页面不会丢失
实现原理
写一个window事件我监听url的变化,那我就能实先路由,那样我就可以根据url的变化,来通过ajax请求参数来渲染页面,一个url对应一个页面,就不会重复。
window.addEventListener(‘hashchange‘,function(){
self.urlChange()
})
3.无hash(#)式
这种类型是通过html5的最新history api来实现的 能正常的回退前进,超嗨
那么问题来了
第一种方式页面不能刷新,第二种刷新也无妨,因为url并没有改变,请求url从服务器照样能够loading到页面。
但是第三种就出问题了,我一刷新就loading不到页面就报404页面丢失了。怎么办呢???
解决方案
方案一
通过后台控制404转发到程序入口index.html页面来,让页面能够正常的显示。
方案二
通过服务器的nginx配置
可以去参考下vue的单页面模式路由页刷新解决方案
http://www.cnblogs.com/kevingrace/p/6126762.html
转载地址:https://blog.csdn.net/u013234218/article/details/70170837
原文地址:https://www.cnblogs.com/sweeeper/p/11457886.html
时间: 2024-10-12 19:34:32