首页前端开发其他前端知识vue中异步组件和动态组件的有什么区别

vue中异步组件和动态组件的有什么区别

时间2024-03-26 00:14:02发布访客分类其他前端知识浏览579
导读:这篇文章给大家分享的是“vue中异步组件和动态组件的有什么区别”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“vue中异步组件和动态组件的有什么区别”吧。 区别:1...
这篇文章给大家分享的是“vue中异步组件和动态组件的有什么区别”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“vue中异步组件和动态组件的有什么区别”吧。

区别:1、动态组件是Vue中一个特殊的Html元素“component> ”,它拥有一个特殊的is属性,属性值可以是“已注册组件的名称”或“一个组件的选项对象”;而异步组件不是实物,是一个概念,一个可以让组件异步加载的方式。2、动态组件用于不同组件之间进行动态切换;而异步组件用于性能优化,比如减小首屏加载时间、加载资源大小。

如何快速入门VUE3.0:进入学习

本教程操作环境:windows7系统、vue3版,DELL G3电脑。

异步组件

在一些大型的Vue应用中,不管是为了代码的抽离,还是逻辑的划分,不可避免的会将应用分割成一些很小的代码块,形成我们意识上的组件,在需要的地方可以进行 import 引入,例如下面:

    import MyComponent from '../components/my-component.vue'

    new Vue({

        // ...
        components: {
MyComponent}

    }
)

这种方式引入,MyComponent 在构建的过程中,会被同步打入页面的bundle.js中

这个时候,在某些场景中,比如:

1、这个组件的体积很大

2、它不是页面一开始就需要的

那么我们在构建的过程中,就将组件代码打入页面js中,显然是不合适的

Vue提供了一种异步组件的概念:只在需要的时候才从服务器加载

我们可以这么定义:

    Vue.component('async-example', function (resolve, reject) {

        setTimeout(function () {

            // 向 `resolve` 回调传递组件定义
            resolve({
    
                template: 'div>
    I am async!/div>
'
            }
)
        }
, 1000)
    }
)

上面的例子,采用 setTimeout 模拟异步获取组件,真实情况,甚至可以通过ajax请求组件编译之后的template,然后调用 resolve 方法;如果加载失败,可以调用 reject 方法

大部分情况下,我们的组件都是单独分割成一个 .vue 文件,那么我们可以这么做:

    Vue.component('async-webpack-example', function (resolve) {

        require(['./my-async-component'], resolve)
    }
)

这个特殊的 require 语法将会告诉 webpack,自动将你的构建代码切割成多个包,这些包会通过 Ajax 请求加载

那么如果你的页面没有用到这个组件,自然就不会请求组件的js包

当然,也可以局部注册异步组件

    new Vue({

    // ...
        components: {
    
            'my-component': () =>
 import('./my-async-component')
        }

    }
    )

动态组件

说到异步组件,很多人就会想到另一个类似的 动态组件,并且总是会弄混两者的关系。

其实 动态组件异步组件 完全不是一码事!!!

直接上总结

动态组件:是Vue中一个特殊的Html元素:component> ,它拥有一个特殊的 is 属性,属性值可以是 已注册组件的名称一个组件的选项对象,它是用于不同组件之间进行动态切换的。

异步组件:简单来说是一个概念,一个可以让组件异步加载的方式;它一般会用于性能优化,比如减小首屏加载时间、加载资源大小。


通过以上内容的阐述,相信大家对“vue中异步组件和动态组件的有什么区别”已经有了进一步的了解,更多相关的问题,欢迎关注网络或到官网咨询客服。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

动态组件Vue

若转载请注明出处: vue中异步组件和动态组件的有什么区别
本文地址: https://pptw.com/jishu/653132.html
如何深入了解C++中类和对象,要点有哪些 C语言联合体Union的定义是什么,如何使用

游客 回复需填写必要信息