首先,路由允许通过不同的URL访问不同的内容,而浏览器的url的地址就是路由
其次就是路由也有两种模式
1.hash模式的路由
hash模式的路由是通过更改锚点(路由#号后面的数据)来实现页面的更新或者重新定位,
但是hash模式的路由不会被浏览器的搜索引擎获取到,不利于搜索引擎的优化
低版本支持
原理是:
window.onhashchange=fun(event){ }
2.history模式的路由
就是url地址没有#号,就从外观上更美观,而且history需要后端支持
低版本不支持
pushState() 或者 push()
而改变路由地址的方法有:
动态路由:就是 在配置的地址的url后面加/:id 或者 /?或者/*,来实现页面的数据加载
路由除了跳转页面还有负责传递页面的值的用途,其目的就是为了前端的性能优化作用
因为不一样的传值从而出现了不一样的导航
声明式导航:router.push 传参地址栏显示传递的数据
编程式导航:router.replace 传参地址栏看不到页面传值的数据,刷新传递的数据会丢失
另外还有命名路由:就在跳转路由的时候加一个name属性
有路由了就会有路由守卫(导航守卫):
前置守卫:进入路由的时候做的守卫(beforeEach)
后置守卫:离开路由的时候做的守卫(afterEach)
最后所有的路由信息有一个总称叫 路由元信息(mate),路由元信息可以在路由地址和导航守卫里访问到