VueRouter4目前处于测试阶段。让我们来看看这个新版本中的一些很酷的功能。Vue3支持Vue3引入了createAppAPI,它改变了将插件添加到Vue实例的方式。因此,过去版本的VueRouter将无法与Vue3兼容。VueRouter4引入了createRouterAPI来创建可以与Vue3一起安装的路由器实例。src/router/index.js:import{createRouter}from"vue-router";exportdefaultcreateRouter({routes:[...],});src/main.js:import{createApp}from"vue";importrouterfrom"./router";constapp=createApp({});app.use(router);app.mount("#app");Historyoption在之前的VueRouter版本中,你可以设置mode选项来设置导航模式。哈希模式利用URL哈希来模拟完整的URL,以便在URL更改时不会重新加载页面。history利用HTML5HistoryAPI启用URL导航而无需重新加载页面。src/router/index.js://VueRouter3constrouter=newVueRouter({mode:"history",routes:[...]});在VueRouter4中,这些模式被抽象成模块,可以导入并分配给新的history选项。这种额外的灵活性允许您根据需要自定义路由历史实现。src/router/index.js//VueRouter4import{createRouter,createWebHistory}from"vue-router";exportdefaultcreateRouter({history:createWebHistory(),routes:[],});动态路由当使用新的.addRoute方法运行路由时,VueRouter4将允许您添加动态路由。这可能不是您每天都会使用的功能,但它确实有一些有趣的用例。例如,假设您正在为文件系统应用程序创建一个UI并希望动态添加路由,您可以这样做:src/components/FileUploader.vue:methods:{uploadComplete(id){router.addRoute({path:`/uploads/${id}`,name:`upload-${id}`,component:FileInfo});}}还可以使用以下相关方法:guard是VueRouter的一个钩子,允许用户在导航事件之前或之后运行自定义逻辑,例如beforeEach,beforeRouterEnter等。它们通常用于检查用户是否有权访问页面,验证动态路由参数,或摧毁听众。自定义逻辑运行后,下一个回调用于确认路由、声明错误或重定向。在版本4中,您可以从钩子中返回一个值或Promise。这将允许像下面这样方便的速记。//VueRouter3router.beforeEach((to,from,next)=>{if(!isAuthenticated){next(false);}else{next();}})//VueRouter4router.beforeEach(()=>isAuthenticated);总结这些只是版本4中添加的一些新功能。您可以在VueRouterNext存储库中了解更多信息。感谢Eduardo和团队为VueRouter4所做的巨大努力!
