账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue asyncComponent 异步加载路由参数delay等无效?
    21
    0

    代码如下,我想对路由进行懒加载,但是能够进行正在加载中的提示,按照官网提示,但是delay没有效果
    路由加载:
    {

        path: '/Me',
        name: 'Me',
        //component: r => import("@/views/loading/loadable")
        component:  asyncComponent()
    }

    asyncComponent函数:
    import LoadingComponent from '@/views/loading/index.vue'
    import errorCom from '@/views/loading/error'
    export default (asyncComponent) => {

    const Com= function(){
        let a = {
            component: require('@/views/Me'),
            loading: LoadingComponent,
            error: errorCom,
            delay: 2000
        }
        return a
    }
    return {
        render: function (h) {
            return h(Com, {})
        }
    }

    }

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 Vue 中,你可以使用 asyncComponent 和 await 语句来实现异步加载路由参数。但是,这种语法在一些情况下可能会导致无效。

      例如,你可能需要在异步加载路由参数后立即渲染组件。在这种情况下,你可能需要在异步加载完成后使用 await 语句来等待参数加载完成。

      例如,如果你有一个函数,该函数用于异步加载路由参数,你可以这样做:

      javascript async function loadParameters() { // 等待参数加载完成 await new Promise(resolve => setTimeout(resolve, 1000)); // 异步加载路由参数 const routeParams = await fetch('/api/route_params').then(response => response.json()); // 渲染组件 renderComponent(routeParams); }

      但是,这种方法可能会导致一些问题,例如如果参数加载失败,渲染组件可能会被阻塞,直到参数加载完成。此外,这种方法也可能会导致性能问题,因为参数加载和渲染可能会花费一些时间。

      因此,你应该尽可能地避免使用 await 语句,并尽可能地使用 promise 和 async/await。这样,你就可以确保在异步加载完成后立即渲染组件,而不会等待参数加载完成。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部