背景:当前uniapp
项目使用了 uni-simple-router
插件,来做路由管理,页面路由分两部分:
- 一部分不需要授权的页面,pageTitle 直接配置在 pages.json 对应页面的 mate 下面;
- 另一部分需要授权的页面,pageTitle 在数据库中配置;
大概流程是,登录后,获取菜单(路径、菜单名称等),写入 store 里面;现在想实现访问日志功能,就是用户访问了什么页面需要后台记录。
我的想法是通过路由拦截器,获取页面信息,然后调用后台接口,这样比较简单。
现在的问题是,我通过两种方式,都没能实现:
方式一:在 router/index.js 的路由拦截器中调用接口;
问题:这里的to
、from
都能直接获取路由的mate,也就是能直接获取pageTitle
,但是不知道该怎么访问 store
(准备通过to.path 来对比 store中的菜单,从而获取需要授权页面的 pageTitle
)
router.beforeEach((to, from, next) => {
})
方式二:在 App.vue 中监听 $route
对象;
问题:虽然这儿比较好获取 store
对象,但是to
、from
对象属性mate中不包含自定义的pageTitle
属性,该怎么解决?
watch: {
$route(to, from) {
let path = to.path
}
},
直接在需要的地方引入
Vuex
实例就好了呀。