vue项目里main.js的异步问题

vue项目,我在main.js的mounted里有一些异步操作,路由也是异步加载的。比如我在main.js里设置了一个延时3s的settimeout,在访问某个子路由页面时,我希望执行完main.js的mounted中的所有操作(包括延时3s啦、请求接口啦等等异步操作)之后,再去执行对应的vue文件的mounted方法。这个应该怎么做呢?

阅读 4.9k
1 个回答

可以用router路由的beforeEach钩子函数

const router = new Router({
    // ...
});

router.beforeEach((to, from, next) => {
    setTimeout(() => {
        // ...
        next();
    }, 3000);

    // ajax在成功回调中同理
    axios
        .get(url)
        .then(() => {
            // ...
            next();
        });
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题