专栏目录请点击
#history路由,路由中不带#'http://www.baidu.com/#/abc' hash 的值为 '#/abc'url中,但是并不会包含在http请求中,因此hash值改变,并不会重新加载页面onhashchange 事件,我们可以通过监听然后渲染自己要渲染的组件api: pushState() 和replaceState() 应用于浏览器的历史记录onpopstate 事件,来监听history的变化,然后渲染自己需要渲染的组件,达到路由的效果在大部分情况下,两者都是差不多的,但是hash模式主要有一下的优势
pushState()来设置url,可以是当前url同源的任意url,而hash只能修改#后的内容,所以值可以设置与当前同源的urlpushState()设置的url与当前的url一模一样,那么记录同样会会添加到栈中,而hash值,设置新值的时候才会添加到记录栈中pushState()通参数可以添加任意的数据记录,而hash智能添加短字符串history存在的问题,一般就会出现在路由路径上
对于这种情况官方推荐的是一个覆盖所有情况的候选资源