参考文章:vue-router浅析原理
1.vue-router是用来干什么的?
是与Vue深度集成的、用来做单页面应用的路径管理器的路由插件。
2.与传统的页面跳转的区别
传统页面是用一些超链接来实现页面的切换和跳转。
而单页面应用里的路由模块是用来建立URL和组件之间的映射关系的。
3.单页面应用SPA,其实只有一个页面,我们肉眼看到的页面的切换实际上是在更新的某个容器里的内容,并不是页面的跳转。单页面应用,只更新视图,不重新请求页面。
4.Vue-router在实现单页面前端路由时,提供了三种方式:Hash模式、History模式、abstract模式。会根据mode参数来决定采用哪一种方式。
5.Hash模式是默认的模式,是使用URL的hash来模拟一个完整的URL。hash(#)是URL的锚点,代表的是网页中的一个位置,改变#后的部分,浏览器只会加载相应位置的内容,不会重新加载网页。每改变一次#后的部分,浏览器的访问历史都会增加一个记录。
6.History模式,这种模式下的URL不会包含符号#,这种模式是利用HTML5 History API中的 history.pushState来实现的。不过这种模式需要后台相应的配置。因为这种模式下的URL跟正常的URL一样,所以当用户直接在浏览器里访问相应的地址时,后端会去找url对应的页面,如果后端不做配置,将匹配不到任何静态资源。所以这种模式下,需要再服务端增加一个覆盖所有情况的候选资源:如果URL匹配不到任何静态资源,则应该返回同一个index.html,这个页面应该就是你的app依赖的页面。
7.abstract模式,是使用一个不依赖于浏览器的浏览历史虚拟管理后端。vue-router自身会对环境做校验,如果没有发现浏览器的API,vue-router会自动强制进入abstract模式,其原理是通过数组模拟浏览器历史记录栈的功能。在 Weex 环境中只支持使用 abstract 模式。
网友评论