1.scrollBehavior
使用keep-alive标签后部分安卓机返回缓存页位置不精确问题
let Router = new Router({
//导航守卫
screenBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition;
} else {
if (from.meta.keepAlive) {
from.meta.savedPosition = document.body.scrollTop;
}
return {
x: 0,
y: to.meta.savedPosition || 0
}
}
},
routes: []
})
推荐参考:scrollBehavior的巧妙用法、scrollBehavior 滚动行为
2.addRoutes
vue-router官方提供的一个api => addRoutes可以实现路由添加的功能,事实上就也就实现了用户权限。
router.addRoutes(routes: Array<RouteConfig>)
动态添加更多的路由规则。参数必须是一个符合 routes 选项要求的数组。
案例:
//page -> index
export default [
//登录
{
path: '/',
name: 'Login',
component: () => import('@/views/Login')
},
...
];
import page from './page'
Router.addRoutes([...page]);