如何在批准导航卫士之前防止Vuejs延迟加载块

时间:2019-03-10 13:40:34

标签: vue.js vue-router

我定义了以下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”方法是通过初始路由上的转发组件,然后将其转发给带有块的“真实”路由)

0 个答案:

没有答案