0
点赞
收藏
分享

微信扫一扫

2021.12.31(第一次面试)

Android开发指南 2022-01-08 阅读 260

面试小结2021.12.31

问题

1.Vue生命周期

**什么是Vue的生命周期:**Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载DOM、渲染—>更新—>渲染、销毁等一系列过程,这就是Vue的生命周期。简单来说就是Vue实例从创建到销毁的过程。

**总共分为了三个阶段:**初始化阶段、运行中阶段、销毁阶段

  • 初始化阶段钩子函数(beforeCreate,created,beforeMount,mounted)
  • 运行中阶段钩子函数(beforeUpdate,updated)
  • 销毁阶段钩子函数(beforeDestory,destoryed)

2.对Vue的虚拟DOM的理解

1.为什么使用虚拟DOM

因为在开发过程中,操作原生DOM是非常消耗性能的,如果某个节点发生改变时,整个容器中的内容都需要重新渲染,就相当于“ 推到重来 ” 。虚拟DOM就可以很好地解决这个问题。如果一次操作中有十次更新DOM的操作,虚拟DOM不会立即操作DOM,而是将10次更新的内容保存在本地的一个js对象中,最后将这个js对象一次性attach到DOM树上,重新渲染,可以避免大量的无用计算量。

2.两者之间的区别

虚拟DOM是js对象原生DOM很大;

虚拟DOM内部分有diff算法对比DOM来减小重绘。

3.虚拟DOM的优缺点

优点:

1.最终表现在DOM上的修改只是变更部分,可以保证非常高效的渲染。

2.提升了性能(JavaScript对象比DOM对象性能高),抽象了DOM的具体实现(DOM进行了一层抽象)

缺点:

首次渲染大量DOM时,由于多了一层虚拟DOM的计算,会比innerHTML插入慢。

3.v-if v-show 的区别

**相同点:**都可以动态操作DOM元素的显示隐藏。

不同点:

1.v-if 是动态向DOM树添加或者删除元素;v-show是通过设置DOM元素的display样式属性控制显隐。

2.v-if 不适合经常改变环境;v-show 更适合频繁切换

3.v-if 是惰性的。如果初始条件为false则什么也不做,只有在条件第一次变为true是才开始渲染;v-show 是在任何条件下都渲染,然后被缓存,而且DOM元素保留。

4.for循环和forEach循环的区别

**for()循环:**通过下标,对循环中的代码反复执行,功能强大,可以通过index去的元素。处理比较复杂的问题时候较为方便。

**forEach()循环:**forEach()方法用于调用数组中的每个元素,并将元素传递给回调函数。forEach对空数组是不会执行回调函数的

forEach相对于for循环,代码减少了,再运行时效率低于for循环。可以说forEach是for循环的特殊简化版本。

5.什么是跨域

跨域指的是浏览器不能执行其他网站的脚本。由于浏览器的同源策略造成的。同源就是指域名端口协议均相同。

举报

相关推荐

sql第一次

记录第一次

第一次打卡

jQuery第一次课

假期第一次总结

第一次python作业

python 第一次作业

0 条评论