我定义了以下vue-route导航防护:
router.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.authOnly)) {
let x = store.state.login.auth;
if( !x ) { next({ path: '/' }) }
else { next(); }
}
else { next(); } });
而且我懒于加载这样的组件:
import router from '@/router'
const UserStartPage = () => import(/* webpackChunkName: "UserStartPage" */ './UserStartPage');
router.addRoutes(
[
{ path: '/start', name: 'UserStartPage', component: UserStartPage, meta: { authOnly: true } },
]
)
现在,当我调用此路由时,我可以在网络选项卡中看到,只要调用该路由,块就立即下载到浏览器中,而一旦解决了导航防护问题就不会下载。 导航警卫确认对路线的访问后,仅加载块的最佳方法是什么?
(我能想到的唯一“ hacky”方法是通过初始路由上的转发组件,然后将其转发给带有块的“真实”路由)