iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue动态组件与异步组件怎么使用
  • 563
分享到

Vue动态组件与异步组件怎么使用

2023-07-05 13:07:00 563人浏览 独家记忆
摘要

这篇“Vue动态组件与异步组件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue动态组件与异步组件怎么使用”文章吧

这篇“Vue动态组件与异步组件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue动态组件与异步组件怎么使用”文章吧。

    何为动态组件

    动态组件是根据数据的变化,可以随时切换不同的组件,比如咱们现在要展示一个文本框和输入框,我们想要根据我们data中定义的值去决定是显示文本框还是输入框,如果用以前学的知识去做的话就是使用v-show的方式去做,虽然也能实现,但是比较复杂,代码也多了很多,这时候用动态组件能很好的解决这个问题

    何为异步组件

    异步组件可以以异步的方式加载组件,实际项目中我们可以把大型的项目拆分成许多小js文件,等使用时再组合,而且可以实现懒加载,有些组件暂时不需要展示给用户的我们可以等用户看到时再加载进来。

    示例解析

    动态组件

    展示一个输入框或者文本,通过一个按钮,点击后可以切换展示,比如当前展示文本,点击按钮就会变为展示输入框,代码如下:

    首先我们先定义两个组件,一个展示输入框,一个展示文本

      app.component('input-item',{        template:`            <input />           `    });    app.component('common-item',{        template:`<div>hello world</div>`    });

    定义一个currentItem变量用于控制组件的展示

    data() {        return {            currentItem: 'input-item'        }    },

    使用组件时使用component关键字 ,然后使用:is = "显示具体组件的依赖数据(本例子中时currentItem)"的方式动态加载组件

      template:         `        <keep-alive>        <component :is="currentItem"/>        </keep-alive>        <button @click="handleClick">switch</button>        `

    keep-alive:组件切换时在组件中的值会被清掉,比如输入框中的值,所以需要使用keep-alive来防止值被清理

    定义点击按钮后执行的方法,这个方法就是改变current Item的值,让其显示不同的组件

     methods: {        handleClick(){            if(this.currentItem === 'input-item'){                this.currentItem = 'common-item';            }else{                this.currentItem = 'input-item';            }        }    }

    所有代码:

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta Http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>动态组件</title>    <script src="https://unpkg.com/vue@next"></script></head><body>    <div id="root"></div></body><script> const app = Vue.createApp({    data() {        return {            currentItem: 'input-item'        }    },    methods: {        handleClick(){            if(this.currentItem === 'input-item'){                this.currentItem = 'common-item';            }else{                this.currentItem = 'input-item';            }        }    },        template:         `        <keep-alive>        <component :is="currentItem"/>        </keep-alive>        <button @click="handleClick">switch</button>        `    });    app.component('input-item',{        template:`            <input />           `    });    app.component('common-item',{        template:`<div>hello world</div>`    });    const vm = app.mount('#root');</script></html>

    异步组件

    假如我们要展示一个文本,这个文本不会马上展示,而是4秒后再展示

    首先定义两个组件,一个同步组件,一个异步组件

    定义同步组件

     app.component('common-item',{        template:`<div>hello world</div>`    })

    定义异步组件,使用Vue.defineAsyncComponent定义异步组件

     app.component('async-common-item', Vue.defineAsyncComponent(()=>{        return new Promise((resolve,reject)=>{            setTimeout(()=>{                resolve({                    template:`<div>this is an async component</div>`                })            },4000)          })    }));

    使用组件

     const app = Vue.createApp({        template:         `        <div>            <common-item />            <async-common-item />        </div>        `    });

    全部代码:

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>异步组件</title>    <script src="https://unpkg.com/vue@next"></script></head><body>    <div id="root"></div></body><script> const app = Vue.createApp({        template:         `        <div>            <common-item />            <async-common-item />        </div>        `    });    app.component('common-item',{        template:`<div>hello world</div>`    })    // 异步组件:可以通过异步组件的方式动态加载组件,可以把大型项目拆分成许多的小js 文件,使用时再组合    app.component('async-common-item',        Vue.defineAsyncComponent(()=>{        return new Promise((resolve,reject)=>{            setTimeout(()=>{                resolve({                    template:`<div>this is an async component</div>`                })            },4000)                })    }));    const vm = app.mount('#root');</script></html>

    以上就是关于“Vue动态组件与异步组件怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: Vue动态组件与异步组件怎么使用

    本文链接: https://www.lsjlt.com/news/351791.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Vue动态组件与异步组件怎么使用
      这篇“Vue动态组件与异步组件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue动态组件与异步组件怎么使用”文章吧...
      99+
      2023-07-05
    • Vue动态组件与异步组件超详细讲解
      目录何为动态组件何为异步组件示例解析动态组件异步组件总结何为动态组件 动态组件是根据数据的变化,可以随时切换不同的组件,比如咱们现在要展示一个文本框和输入框,我们想要根据我们data...
      99+
      2023-03-19
      Vue动态组件与异步组件 Vue动态组件 Vue异步组件
    • Vue浅析讲解动态组件与缓存组件及异步组件的使用
      目录1.什么是动态组件2.如何实现动态组件渲染3.如何实现缓存组件4.异步组件1.什么是动态组件 当我们希望页面中的某个地方,在不同组件之间进行动态切换,这时候除了条件渲染,还可以使...
      99+
      2022-11-13
    • Vue异步组件怎么使用
      本篇内容主要讲解“Vue异步组件怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue异步组件怎么使用”吧!1、前置要求建议使用webpack;Browserify在默认情况下不支持;2、...
      99+
      2023-07-04
    • Vue中动态组件和异步组件的原理是什么
      今天就跟大家聊聊有关Vue中动态组件和异步组件的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言在vue官方资料中,我们可以可以很学会如...
      99+
      2022-10-19
    • Vue异步组件怎么用
      这篇文章将为大家详细讲解有关Vue异步组件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、引入我们在讲异步组件之前,我们再来回顾一下webpack打包时的分包操作。我们可以使用import()异步...
      99+
      2023-06-29
    • vue中异步组件和动态组件的区别有哪些
      本篇内容主要讲解“vue中异步组件和动态组件的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中异步组件和动态组件的区别有哪些”吧! ...
      99+
      2022-10-19
    • vue动态组件component怎么使用
      本篇内容介绍了“vue动态组件component怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、component如何实现动态组件...
      99+
      2023-06-21
    • vue异步组件与组件懒加载问题怎么解决
      本篇内容主要讲解“vue异步组件与组件懒加载问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue异步组件与组件懒加载问题怎么解决”吧!vue异步组件与组件懒加载在写项目的时候,需要动...
      99+
      2023-06-29
    • Vue中动态组件怎么用
      这篇文章将为大家详细讲解有关Vue中动态组件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。动态组件我相信大部分在开发的过程中都会用到,当我们需要在不同的组件之间进行状态切换时,动态组件可以很好的满足...
      99+
      2023-06-21
    • Vue动态组件与内置组件浅析讲解
      目录一、动态组件二、内置组件一、动态组件 在vue中,有很多的组件可以挂载同一个挂载点上面,要在同一个挂载的点上的多个组件之间可以实现动态的切换渲染,我们可以通过内置组件compon...
      99+
      2022-11-13
    • vue动态组件如何使用
      这篇文章主要介绍“vue动态组件如何使用”,在日常操作中,相信很多人在vue动态组件如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue动态组件如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
      99+
      2023-06-29
    • VUE3+vite项目中动态引入组件与异步组件的详细实例
      目录一、全量注册,随用随取1. 把项目中所有vue文件注册成异步组件。2. 获取组件3. 参考如下二、使用@rollup/plugin-dynamic-import-vars插件 1...
      99+
      2022-11-13
    • Vue中如何使用异步组件
      Vue中如何使用异步组件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、前置要求建议使用webpack;Browserify在默认情况下...
      99+
      2022-10-19
    • vue为啥要使用异步组件
      本教程操作环境:windows7系统、vue3版,DELL G3电脑。使用异步组件的原因1.异步组件可以减少打包的结果。会将异步组件分开打包,会采用异步的方式加载组件,可以有效的解决一个组件过大的问题。不使用异步组件,如果组件功能比较多打包...
      99+
      2023-05-14
      Vue 异步组件
    • vue3动态加载组件及动态引入组件怎么使用
      本篇内容介绍了“vue3动态加载组件及动态引入组件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.问题在做一个用vite构建的vu...
      99+
      2023-07-05
    • vue3动态组件怎么使用
      这篇文章主要介绍“vue3动态组件怎么使用”,在日常操作中,相信很多人在vue3动态组件怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue3动态组件怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来...
      99+
      2023-07-06
    • vue3异步组件怎么用
      这篇文章给大家分享的是有关vue3异步组件怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在vue3中,异步组件可以减少打包的结果,会将异步组件...
      99+
      2022-10-19
    • Vue.js组件中插槽和相关动态组件、异步组件的示例分析
      这篇文章主要为大家展示了“Vue.js组件中插槽和相关动态组件、异步组件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue.js组件中插槽和相关动态...
      99+
      2022-10-19
    • Vue3异步组件Suspense怎么使用
      今天小编给大家分享一下Vue3异步组件Suspense怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Suspense...
      99+
      2023-07-06
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作