异步组件

异步组件:只在组件需要渲染(组件第一次显示)的时候进行加载渲染并缓存,缓存是以备下次访问。
Vue实现按需加载 在打包的时候,会打包成单独的js文件存储在static/js文件夹里面**
在调用时使用ajax请求回来插入到html中。

调用异步组件的方法

异步组件中,如果父组件调用子组件,需要给一个延时。可以用setTimeOut来处理。
同步组件中:如果父组件调用子组件,不需要延时,可以直接去调用。
通过this.$refs.XXX.方法名
在使用该方法时,子组件身上一定不要使用v-if;否者会出现undefined

父组件调用子组件并且传值可以使用这个方法

使用props父组件向子组件传递一个值
然后使用延时 settimeout(()=>{
this.$refs.XXX.方法名();//这样就可以了
},400)

异步组件结合v-if提升首页渲染速度

<template>
<div>
<div @click="showHander">显示组件</div>
<testcom v-if="show"></testcom>
</div>
</template> <script>
export default {
data(){
return{
show:false,
}
},
methods:{
showHander(){
this.show=!this.show;
},
},
components:{
testcom:()=>import(/* webpackChunkName:"lhtest" */'../components/test-com')
}
}
</script>

发生的现象

因为我们使用了v-if结合异步组件加载
在页面第一次渲染的时候
并不会直接去加载testcom这个组件
而是页面需要渲染的时候
才会去加载这个组件
/* webpackChunkName:"lhtest" */ 这个是webpack的魔法注释 如果我们不是使用的v-if,而是使用的v-show;
那么会出现的现象是:lhtest.js这个文件会在你进入引入这个页面的时候就去加载这个文件

vue同步组件和异步组件的区别的更多相关文章

  1. Vue动态加载异步组件

    背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,if ...

  2. vue2组件之异步组件...resolve

    看开源项目的时候看到这样的用法: 发现与之前定义组件的方式不一样,这个resolve又是什么? 原来这个是vue的异步组件实现,可以看这里:<异步组件> 异步组件的需求: 在大型应用中,我 ...

  3. 同步请求和异步请求的区别,ajax异步请求如何理解

    同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...

  4. 同步IO和异步IO的区别

    首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO.非阻塞IO.IO服用 ...

  5. Vue 动态组件和异步组件

    基础案例 动态组件切换类比"bilibili-个人中心"的横向菜单切换不同的标签页的功能. 在Vue中可以使用 component 标签,并加一个特殊的属性(attribute) ...

  6. vue 组件高级用法(递归组件,内联模板,动态组件,异步组件)

  7. ajax同步请求与异步请求的区别

    ajax 区别: async:布尔值,用来说明请求是否为异步模式.async是很重要的,因为它是用来控制JavaScript如何执行该请求. 当设置为true时,将以异步模式发送该请求,JavaScr ...

  8. node.js学习二---------------------同步API和异步API的区别

    /** * node.js大部分api都有同步的方法,同步方法名后面都会带有Sync,js编译的时候,同步代码会立即执行,异步代码会先存到异步池中,等同步代码执行完后它才会执行异步:不会阻塞线程,没有 ...

  9. 同步请求和异步请求的区别(理解ajax用)

    同步请求:发送方发送数据包后,等待接收方发回响应之后,才能发送下一个数据包的通信方式. 异步请求:发送方发送数据包后,不用等待接收方发回响应,就可以发送下一个数据包的通信方式. 同步通信:要求通信双方 ...

  10. 揭开Vue异步组件的神秘面纱

    简介 在大型应用里,有些组件可能一开始并不显示,只有在特定条件下才会渲染,那么这种情况下该组件的资源其实不需要一开始就加载,完全可以在需要的时候再去请求,这也可以减少页面首次加载的资源体积,要在Vue ...

随机推荐

  1. web messaging与Woker分类:漫谈postMessage跨线程跨页面通信

    web messaging 跨文档通信(cross-document messaging):跨就是我们国内更为熟知的HTML5 window.postMessage()应用的那种通信: 通道通信(ch ...

  2. JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析

    JPEG文件简介 JPEG的全称是JointPhotographicExpertsGroup(联合图像专家小组),它是一种常用的图像存储格式, jpg/jpeg是24位的图像文件格式,也是一种高效率的 ...

  3. JQuery 弹出模态窗口

    index.html <!DOCTYPE html> <html> <head> <!-- Contact Form CSS files --> < ...

  4. C-Shopping基于Next.js,开源电商平台全新亮相

    嗨,大家好!欢迎来到C-Shopping,这是一场揭开科技面纱的电商之旅.我是C-Shopping开源作者"继小鹏",今天将为你介绍一款基于最新技术的开源电商平台.让我们一同探索吧 ...

  5. 创建DOM节点时出现错误信息:box.appendChild is not a function

    1.代码正常书写如下 <div class="box"></div> <!-- JavaScript代码 --> <script> ...

  6. 使用Expression代替反射读取IDataReader或IDataRecord给实体类赋值

    ExpressionMapper代码 using System; using System.Collections.Concurrent; using System.Collections.Gener ...

  7. #1198:Farm Irrigation(DFS + 并查集)

    Farm Irrigation **Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...

  8. 2016年第七届 蓝桥杯C组 C/C++决赛题解

    蓝桥杯历年国赛真题汇总:Here 1.平方末尾 能够表示为某个整数的平方的数字称为"平方数" 比如,25,64 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数. 因 ...

  9. 第四届蓝桥杯(2013)C/C++大学A组省赛题解

    第一题:高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生 ...

  10. vivo平台化实践探索之旅-平台产品系列01

    vivo 互联网平台产品研发团队- Yang Yang 本篇为<vivo 平台产品>系列文章的第1篇.主要描述在业务高速发展的背景下,vivo软件工程师通过系统平台化建设等手段,逐步解决软 ...