前言【vue-router源码】系列文章将带你从0开始了解vue-router的具体实现。本系列的源码文章参考vue-routerv4.0.15。源码地址:https://github.com/vuejs/router阅读本文的前提是你最好了解vue-router的基本使用。如果没有使用过,可以通过vue-router官网进行学习。本文将分析globalnavigationguards的实现。共有三种全局导航守卫:beforeEach:在任何导航之前执行。返回一个函数,该函数删除已注册的导航守卫。beforeResolve:在导航解析之前执行。返回一个函数,该函数删除已注册的导航守卫。afterEach:在任何导航之后执行。返回一个函数,该函数删除已注册的导航守卫。constrouter=createRouter({//...})router.beforeEach=function(){//...}router.beforeResolve=function(){//...}router.afterEach=function(){//...}globalnavigationguard实现globalnavigationguard和onError是通过维护一个数组来实现的。在vue-router中,可以使用useCallbacks函数来创建可重置列表。全局钩子和onError是通过useCallbacks实现的。常量beforeGuards=useCallbacks
