vue-router是什么
vue-router是vue的路由插件
vue-router有哪几种导航钩子
vue-router的导航钩子,主要用来作用是拦截导航,完成跳转或取消
全局导航钩子
- 前置守卫
const router = new VueRouter({...})
router.beforeEach((to,form,next) =>{
...
})
参数解析:
- to:代表要进入的目标,是一个路由对象
- from:代表当前正要离开的路由,同样也是一个路由对象
- next:必须要调用的方法,否则钩子函数无法resolved
router的区别
- route:相当于当前正在跳转的路由对象,可以从里面获取name,path,params,query等
- router:为VueRouter的实例,相当于一个全局的路由器对象,包含很多属性和子对象。
vue-router的两种模式
- hash模式,(默认模式) 原理是:onhashchange事件
window.onhashchange = function(){
let hash = location.hash.slice(1);
}
使用onhashchange()事件的好处:在页面的hash值发生变化时,无需向后端发起请求,window就可以监听事件的改变,并按规则加载相应的代码。
- history模式 history模式利用了html5中history Interface中新增的pushstate()和replaceState()方法。