Home Web Front-end JS Tutorial A brief analysis of Vue's asynchronous component functions

A brief analysis of Vue's asynchronous component functions

Jul 19, 2018 pm 05:17 PM
css html javascript vue.js

This article brings you a brief analysis of Vue’s asynchronous component functions. It has corresponding code examples. Friends in need can refer to them.

export default new Router({
  routes: [
    {
      path: '/live',
      name: 'live',
      component: () => import('@/view/live/live.vue')
    }
  ]
})
Copy after login

The above code is a very common router code split. Live.vue will only be loaded when the code is routed to live
But in this way, the process of obtaining live.vue will be blank, and there will be nothing. No, the experience is not good, it can be solved by using the asynchronous assembly provided by 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')
    }
  ]
})
Copy after login

In this way, there will be a customized loading display before getting live.vue
But there are many routes, and we can't have every Each route writes a loadable.vue, so write a function to solve

新建一个 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'))
    }
  ]
})
Copy after login

Such a minimalist vue asynchronous function is completed

Related recommendations:

How VSCode introduces Vue components and Js modules

The above is the detailed content of A brief analysis of Vue's asynchronous component functions. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What are the encoded fonts used in the picture? How to apply this font style in a project? What are the encoded fonts used in the picture? How to apply this font style in a project? Apr 05, 2025 pm 05:06 PM

Introduction and use of encoded fonts In programming and web design, choosing the right font can greatly improve the readability and aesthetics of the code. recent,...

How to correctly display the locally installed 'Jingnan Mai Round Body' on the web page? How to correctly display the locally installed 'Jingnan Mai Round Body' on the web page? Apr 05, 2025 pm 10:33 PM

Using locally installed font files in web pages Recently, I downloaded a free font from the internet and successfully installed it into my system. Now...

How to select a child element with the first class name item through CSS? How to select a child element with the first class name item through CSS? Apr 05, 2025 pm 11:24 PM

When the number of elements is not fixed, how to select the first child element of the specified class name through CSS. When processing HTML structure, you often encounter different elements...

How to use CSS and Flexbox to implement responsive layout of images and text at different screen sizes? How to use CSS and Flexbox to implement responsive layout of images and text at different screen sizes? Apr 05, 2025 pm 06:06 PM

Implementing responsive layouts using CSS When we want to implement layout changes under different screen sizes in web design, CSS...

How to adjust hover style and logic of merged rows in el-table in Element UI? How to adjust hover style and logic of merged rows in el-table in Element UI? Apr 05, 2025 pm 07:45 PM

How to adjust the hover style and logic of merged rows in el-table? Using Element...

How to make multiple lines of text aligned and underscore with CSS? How to make multiple lines of text aligned and underscore with CSS? Apr 05, 2025 pm 08:00 PM

How to make multiple lines of text aligned and underscore with CSS? In daily web design, we often need to style multiple lines of text in special styles...

How to efficiently modify the style of nested DIV elements? How to efficiently modify the style of nested DIV elements? Apr 05, 2025 pm 10:45 PM

In-depth discussion on nested DIV style modification methods This article will explain in detail how to effectively modify the DIV element style of nested structures. The challenge we face is how...

How to achieve horizontal scrolling effect of horizontal options by rotating elements in CSS? How to achieve horizontal scrolling effect of horizontal options by rotating elements in CSS? Apr 05, 2025 pm 10:51 PM

How to achieve horizontal scrolling effect of horizontal options in CSS? In modern web design, how to achieve a horizontal tab-like effect and support the mouse...

See all articles