hash模式:浏览器url上有#
取地址栏的东西:location对象href属性进行获取和页面跳转和刷新页面
借助 location.hash='/home' 可以改变#后面的路径
借助hash进行路径的跳转,实现无页面刷新改变路径
优点:
1、兼容性好,兼容到ie8及以上
2、刷新不会进行http请求
history模式:浏览器url上没有#
利用h5新推出的api:有入栈出栈压栈
history.pushState(data,title,url)
history.replaceState(data,title,url)
优点:url美观
缺点:
1、因为是h5新推出的api,有兼容性问题,只能兼容到ie10之后的浏览器
2、当直接在地址栏访问/刷新页面,会进行http请求,当访问的页面路径是嵌套路由,有可能造成页面丢失的现象,需要服务端在嵌套路由的层级上面加一个回退路由。