前端路由的核心是改变url,但页面不进行整体的刷新。
如何实现?
一. url的hash
- 在控制台输入
location.hash=''
- url改变
- 没有重新启动资源
二. HTML5的history
history.pushState
这里的history.pushState,类似于栈结构
特点是先进后出
栈结构只有一个口子,先进去的在最下面,最后出来。最后进去的在第一个,最先出来。
当多次修改,也是按照先进后出原则,eee在最上面显示
可以点击页面左上角的后退符号,浏览器页面会依次后退
2. history.back()
history.back()作用和后退符一样,每次浏览器页面后退一个
3. history.forward()
作用和history.back()相反,是浏览器页面前进 一个
4. history.go()
可以传入数字history.back()
等价于history.go(-1)
history.forward()
等价于history.go(1)
history.replaceState
替换之前的url,不能进行返回和前后跳转