一些Vue相关的面试题,帮助求职者提升竞争力

Vue是一套构建用户界面的渐进式框架,具有简单易用、性能好、前后端分离等优势,是Web前端工程师工作的好帮手,也是企业选拔人才时考察的重点技能。接下来就给大家分享一些Vue相关的面试题,帮助大家提升竞争力。

1、你对Vue生命周期的理解?

Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载等一系列过程,我们称这是Vue的生命周期。
在这里插入图片描述

2、Vue组件如何通信?

Vue组件通信的方法如下:

props e m i t + v o n : p r o p s emit+v-on: 通过props将数据自上而下传递,而通过 emit和v-on来向上传递信息。

EventBus: 通过EventBus进行信息的发布与订阅;

vuex: 是全局数据管理库,可以通过vuex管理全局的数据流;

$attrs l i s t e n e r s : V u e 2.4 listeners: Vue2.4中加入的 attrs/$listeners可以进行跨级的组件通信;

provide/inject:以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效,这成为了跨组件通信的基础。

3、Vue如何实现双向绑定?

利用Object.defineProperty劫持对象的访问器,在属性值发生变化时我们可以获取变化,然后根据变化进行后续响应,在vue3.0中通过Proxy代理对象进行类似的操作。

4、如何理解Vue的响应式系统的?

响应式系统简述:任何一个 Vue Component都有一个与之对应的Watcher实例。Vue的data上的属性会被添加getter和setter属性。当Vue Component render函数被执行的时候,data上会被 触碰(touch),即被读, getter方法会被调用, 此时Vue会去记录此Vue component所依赖的所有data。(这一过程被称为依赖收集)

data被改动时(主要是用户操作),即被写,setter方法会被调用, 此时Vue会去通知所有依赖于此data的组件去调用他们的render函数进行更新。

5、Vue中的key到底有什么用?

key是为Vue中的vnode标记的唯一id,通过这个key,我们的diff操作可以更准确、更快速。

准确: 如果不加key,那么vue会选择复用节点(Vue的就地更新策略),导致之前节点的状态被保留下来,会产生一系列的bug。

快速: key的唯一性可以被Map数据结构充分利用,相比于遍历查找的时间复杂度O(n),Map的时间复杂度仅仅为O(1)。

6、computed和watch有什么区别?

computed:

computed是计算属性,也就是计算值,它更多用于计算值的场景;

computed具有缓存性,computed的值在getter执行后是会缓存的,只有在它依赖的属性值改变之后,下一次获取computed的值时才会重新调用对应的getter来计算;

computed适用于计算比较消耗性能的计算场景。

watch:

更多的是「观察」的作用,类似于某些数据的监听回调,用于观察props $emit或者本组件的值,当数据变化时来执行回调进行后续操作;

无缓存性,页面重新渲染时值不变化也会执行。

当然,根据企业中对Web前端人才的岗位职责规定不同,面试考察的重点也不尽相同。如果你想了解更多Web前端面试题或掌握更多面试技巧,可以关注我,定期发布技术热点和求职指导文章,助力你更快更好的求职。

发布了733 篇原创文章 · 获赞 77 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/xiaoxijing/article/details/105273557
今日推荐