1.Vue中自定义指令的理解,应用场景有哪些?
自定义指令也像组件那样存在钩子函数:
bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)
update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新
componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用
unbind:只调用一次,指令与元素解绑时调用
应用场景:防抖,图片懒加载,一间copy功能
2.大文件如何做断点续传?
文件上传很简单,但是上传大文件的就会很复杂,在上传大文件时候,会有些不定因素影响用户体验,比如服务器处理数据的能力,请求超时,网络波多。
断电续传指的就是在下载或者上传时,将下载和上传的任务分为几个部分,大致流程就是首先拿到文件,保存文件唯一标识,切割文件,分段上传,每次上传一段,根据唯一标识判断文件上传进度,直到文件的全部片段上传完毕。
3.说说设备像素、css像素、设备独立像素、dpr、ppi之间的区别?
1.无缩放的情况下,1px=1dip
2.设备像素不会改变,但是设备虚拟像素会变
3.在移动端标准屏下,1dip=1dp
4.dpr=dp/dip
5.ppi越大,图像越清晰
4.谈谈你对BFC的理解?
BFC的意思就是块级格式化上下文,它是页面的一块渲染区域,并且有一套属于自己的渲染规则:
1.内部的盒子会在垂直方向上一个接一个的放置
2.BFC的区域不会与float的元素区域重叠
3.计算BFC的高度时,浮动子元素也参与计算
4.BFC就是页面上的一个隔离的独立容器
5.说说TCP为什么需要三次握手和四次挥手?
三次握手是为了建立可靠的数据传输通道,四次挥手是为了保证等数据传输完再关闭连接
三次握手需要向客户端和服务器发送三个包,确认双方接收能力和发送能力正常
tcp终止一个连接,需要经过四次挥手
6.什么是强缓存和协商缓存?
强缓存:使用强缓存策略时,如果缓存资源有效,则直接使用,不必再向服务器发起请求
协商缓存:协商缓存是由服务器来确定缓存资源是否有效