记2022年第一次面试
一、自我介绍环节
二、面试题
1. Vue3.0 和 Vue2.0 的区别?
传送门1:盘点 Vue3 与 Vue2 的区别 - 掘金 (juejin.cn)
传送门2:面试官:vue3有了解过吗?能说说跟vue2的区别吗? | web前端面试 - 面试官系列 (vue3js.cn)
变化: Vue3.0 相比 Vue2.0,
-
速度更快; 体积减少; 更易维护; 更接近原生; 更易使用;
1) 生命周期:
| Vue2.0 | Vue3.0 |
|---|---|
| beforeCreate | setup |
| created | setup |
| beforeMount | onBeforeMount |
| mounted | onMounted |
| beforeUpdate | onBeforeUpdate |
| updated | onUpdated |
| beforeDestroy | onBeforeUnmount |
| destroyed | onUnmounted |
Vue2.0 的生命周期钩子函数不需要引入即可使用,而 Vue3.0 的生命周期钩子函数在使用前需要引入。
2)多根节点:
在 Vue2.0 中,在模板中如果使用多个根节点会报错,template标签中只能存在一个根节点,需要使用div标签来包裹; 但是 Vue3.0 中支持多个根节点。
3)Composition API(组合式API):
Vue2.0 是选项式API(Option API),一个逻辑会散乱在文件的不同位置(data、props、computed、watch、生命周期钩子等),导致代码的可读性变差。当需要修改某个逻辑时,需要上下来回跳转文件位置。
Vue3.0 是组合式API(Composition API),可将同一逻辑的内容写到一起,增强了代码的可读性、内聚性,其还提供了较为完美的逻辑复用性方案。
4)响应式原理:
Vue2.0 响应式原理基础是 Object.defineProperty;Vue3.0 响应式原理基础是 Proxy。
5)TypeScript 支持:
Vue3.0 由 TypeScript 重写,相对于 Vue2.0 有更好的 TypeScript 支持。
2. 说一下Vue3.0 中的 setup 的生命周期。
setup() 是组合式API的入口函数,可以直接在里面定义变量和方法(数据和业务逻辑),通过对象的形式返回暴露出去。
setup 的执行顺序在 beforeCreate 之前。
3. ES6 的新特性有哪些?
- const 和 let 关键字;
- map 和 set 数据类型;
- 模板字符串;
- 对象数组解构赋值;
- 函数剩余参数;(...arg)
- 扩展运算符;(...)
- 形参默认值; fn(name = 'zs')
- 对象字面量的增强(属性名和属性值相同,可缺省);
- Promise 异步对象;
- class 类的支持;
- async / await;
4. 说一下对数组进行去重有哪些方法。
5. v-if 和 v-show 的区别?
两者都可以控制元素是否显示,v-show 是通过 CSS 的方式来隐藏元素,而 v-if 是根据条件是否成立来决定是否要创建元素。如果某个元素需要频繁切换显示状态的话,建议使用 v-show,因为使用 v-if 频繁创建销毁 DOM 需要性能开销。
6. Vue 父子组件之间的通信方案?
7. 说一下CSS 的特性(三大特性)。
传送门:CSS的三大特性 - 随风行云 - 博客园 (cnblogs.com) 层叠性、继承性、优先级
三、反问环节
- 您认为您的团队中有哪些能够吸引到您的地方?
- 能说一下公司对于新人的培养体系吗?
- 请问工作环境是怎样的?
- 目前小组研发团队多少人?
- 前端多少人?