刚看的,存储一下
1.单页路由是什么?(这是自己的理解)
单页路由就是只在不需要产生或重新加载新页面的前提下,完成内容的更新
2.实现的方法
1.url完全不动型(页面怎么改变,url就是不变)
工具:ajax方法
ajax的意义就是异步加载,在不需要重载页面的前提下,更新部分内容。
2.带#型
工具:window.hashchange
原理就是用该工具监听#后面参数的变化,执行js代码
3.不带#型
工具:history API(HTML5新东西)
原理:利用监听历史记录点进行路由
需要的函数:
1.history.pushState 是将指定的URL添加到浏览器历史里,存储当前历史记录点API
2.history.replaceState 是将指定的URL替换当前的URL,替换当前历史记录点
注:1与2的不同在于1会在window.history里创建历史记录点,2不会创建
3.history.state 当前URL下对应的状态信息
4.window.onpopstate 监听历史记录点,也就是说监听URL的变化,但会忽略URL的hash部分。
history.go和history.back(包括用户按浏览器历史前进后退按钮)触发,
并且页面无刷的时候(由于使用pushState修改了history)会触发popstate事件,
事件发生时浏览器会从history中取出URL和对应的state对象替换当前的URL和history.state。
通过event.state也可以获取history.state。