vue Router中常用的路由模式实现原理
1:hash模式:
1:location.hash的值实际就是URL中#后面的东西,它的特点在于:hash虽然出现在url中,但不会被包含在HTTP请求中,对后段完全没有影响,因此改变hash不会重新加载页面。
2:可以为hash的改变添加监听事件,
javascript
复制代码
window.addEventListener('hashChange',funcRef,false);
每一次改变hash(window.location.hash),都会在浏览器的访问历史中增加一个记录,利用hash的特点,就可以实现更改前端路由“更新试图但不会重新加载页面“的功能。
2:history模式:
利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法。
这两个方法应用于浏览器的历史记录站,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。这两个方法有个共同的特点:当调用他们修改浏览器历史记录栈后,虽然当前 URL 改变了,但浏览器不会刷新页面,这就为单页应用前端路由“更新视图但不重新请求页面”提供了基础。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!