> 웹 프론트엔드 > JS 튜토리얼 > Vue의 비동기 컴포넌트 기능에 대한 간략한 분석

Vue의 비동기 컴포넌트 기능에 대한 간략한 분석

不言
풀어 주다: 2018-07-19 17:17:15
원래의
1566명이 탐색했습니다.

이 기사에서는 Vue의 비동기 구성 요소 기능에 대한 간략한 분석을 제공합니다. 해당 코드 예제가 필요하면 참조할 수 있습니다.

export default new Router({
  routes: [
    {
      path: '/live',
      name: 'live',
      component: () => import('@/view/live/live.vue')
    }
  ]
})
로그인 후 복사

위의 코드는 매우 일반적인 라우터 코드 분할입니다. Live.vue는 코드 경로가 라이브일 때만 로드됩니다.
그러나 이렇게 하면 live.vue를 얻는 프로세스가 아무것도 없이 공백이 되며 경험이 없어집니다. 이는 좋지 않습니다. vue

新建一个 loadable.vue

<template>
    <index></index>
</template>

<script>
    import LoadingComponent from './load.vue' // LoadingComponents是 live.vue为获取前展示的内容
    export default {
        components: {
            index: () => ({
                component: import('@/view/live/live.vue'),
                // 异步组件加载时使用的组件
                loading: LoadingComponent,
                // 展示加载时组件的延时时间。默认值是 200 (毫秒)
                delay: 200,
                // 如果提供了超时时间且组件加载也超时了,
                // 则使用加载失败时使用的组件。默认值是:`Infinity`
                timeout: 3000
            })
        }
    }
</script>

然后修改router.js

export default new Router({
  routes: [
    {
      path: '/live',
      name: 'live',
      component: import('loadable.vue')
    }
  ]
})
로그인 후 복사

에서 제공하는 비동기 구성을 사용하면 해결할 수 있습니다. 이렇게 하면 live.vue를 가져오기 전에 사용자 정의된 로딩 표시가 표시됩니다. 하지만 경로가 많아 loadable.vue를 작성할 수 없습니다. 각 경로에 대해

新建一个 loadable.js

import LoadingComponent from './load.vue'

export default (asyncComponent) => {
    const Com= () => ({
        // 这里vue官网可以知道具体有哪些参数可以设置
        // https://cn.vuejs.org/v2/guide/components-dynamic-async.html#%E5%A4%84%E7%90%86%E5%8A%A0%E8%BD%BD%E7%8A%B6%E6%80%81
        component: asyncComponent(),
        loading: LoadingComponent
    })
    return {
        render (h) {
          return h(Com, {})
        }
    }
}

然后修改一下router.js

import loadable from 'loadable.js'
export default new Router({
  routes: [
    {
      path: '/live',
      name: 'live',
      component: loadable (() => import('@/view/live/live.vue'))
    }
  ]
})
로그인 후 복사
를 해결하기 위한 함수를 작성합니다. 이러한 최소한의 vue 비동기 함수가 완성되었습니다

관련 권장 사항:

Vue 구성 요소 및 Js 모듈을 VSCode에 도입하는 방법

위 내용은 Vue의 비동기 컴포넌트 기능에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿