源本科技 | 码上会

Vue3 路由与状态管理

2026/04/05
0
0

Vue3应用中的路由守卫是什么,它们是如何工作的

路由守卫就是 Vue Router 的路由跳转拦截器,相当于页面跳转的“门卫”,用来控制路由的访问权限、执行跳转前后的逻辑。主要分三类:全局守卫(beforeEach前置、afterEach后置)、路由独享守卫(beforeEnter)、组件内守卫(onBeforeRouteEnter等)。工作原理很简单:当路由发生跳转时,会按顺序触发对应的守卫函数,你可以在里面做登录校验、权限判断、页面埋点等操作。通过调用next()放行跳转,next(false)拦截,不调用就会卡住路由。核心作用是保护页面,比如未登录禁止进入个人中心,是前端权限控制的核心工具。

Vue3中如何配置路由懒加载与动态加载

路由懒加载是按需加载组件,优化首屏速度,Vue3 配合 Vue Router4 用ES6 动态 import() 实现,替代直接 import 组件。配置时把路由的component改成() => import('@/views/xxx.vue'),打包时会自动拆分代码块,只有访问对应路由才加载组件。动态加载是动态添加路由,适合权限控制,用router.addRoute()接口,根据用户角色筛选路由后批量注册。懒加载减少首屏包体积,提升加载速度;动态加载实现权限路由,不同角色展示不同菜单。两者都是大型项目必备的路由优化方案,配置简单、效果显著。

Vue3应用中如何使用Pinia进行全局状态管理

Pinia 是 Vue3 官方推荐的全局状态管理库,替代 Vuex,语法更简洁。使用分三步:先安装 Pinia 并在 main.js 全局注册;然后创建独立 store,定义state存储数据、getters计算数据、actions处理业务逻辑(支持同步异步);组件中引入对应的 store,用storeToRefs解构 state 保持响应式,直接调用方法修改数据。Pinia 无 mutations、无命名空间,模块化更清晰,支持 TS,所有组件都能共享、修改状态,完美解决跨组件、跨页面通信混乱的问题,是 Vue3 项目全局状态管理的首选。