手记

【九月打卡】第20天 前端工程师2022版 就业必备基础技术面试分析

课程名称: Vue面试真题演练

课程章节:框架面试课

课程讲师: 双越

课程内容:


1、v-show 和 v-if 的区别

v-show通过CSS display控制显示和隐藏

v-if组件真正的渲染和销毁,而不是显示和隐藏

频繁切换显示状态用v-show,否则用v-if


2、为何在v-for中用key

◆必须用key,且不能是index和random

◆diff算法中通过tag和key来判断,是否是sameNode

◆减少渲染次数,提升渲染性能


3、描述Vue组件生命周期(父子组件)

◆单组件生命周期图

beforeCreate(创建前):【没数据】

created(创建后) :【(有数据)没编译】

beforeMount(挂载前):【有数据(有编译)没挂载】

mounted(挂载后):【有数据有编译(有挂载)】

beforeUpdate(更新前):【(数据更新)没渲染】

updated(更新后) :【数据更新(有渲染)】

beforeDestroy(销毁前):【实例可用】

destroyed(销毁后):【实例不可用】


◆父子组件生命周期关系

加载渲染过程:

1.⽗组件 beforeCreate

2.⽗组件 created

3.⽗组件 beforeMount ~~~

4.⼦组件 beforeCreate

5.⼦组件 created

6.⼦组件 beforeMount

7.⼦组件 mounted

8.⽗组件 mounted

更新过程:

1.⽗组件 beforeUpdate ~~~

2.⼦组件 beforeUpdate

3.⼦组件 updated

4.⽗组件 updated

销毁过程:

1.⽗组件 beforeDestroy ~~~

2.⼦组件 beforeDestroy

3.⼦组件 destroyed

4.⽗组件 destoryed


4、Vue组件如何通讯(常见)

◆父子组件props和this.$emit

◆自定义事件event.$on event.$off event.$emit

◆vuex


5、描述组件渲染和更新的过程

vue原理的三大模块:1.响应式监听属性变化(紫色)2.模板渲染(黄色)3.虚拟DOM(绿色)

执行render函数时会触发“Touch”,触发 getter,然后收集依赖到watcher,触发getter更改时会触发setter,setter通知watcher看看之前是否收集过,收集过就触发re-render,触发vue渲染


6、双向数据绑定V-mode!的实现原理

◆input元素的value=this.name

◆绑定input事件this.name=$event.target.value

◆data更新触发re-render


7、对MVVM的理解

8、computed 有何特点

①缓存,data不变不会重新计算

②提高性能


9、为何组件data必须是一个函数?

因为,实际上.view文件被编译出来后,这个view组件是一个class类,然后在每个地方使用这个组件时,相当于对这个组件进行了实例化,在实例化时去执行data,如果data不是函数,那么每个组件的实例数据都一样了。在一个组件改数据,另一个组件也会跟着改变。


10、Ajax请求应该放在哪个生命周期?

◆mounted

◆JS是单线程的,ajax异步获取数据

◆放在mounted之前没有用,只会让逻辑更加混乱


11、如何将组件所有props传递给子组件?

◆$props

◆<user v-bind="$props”/>

◆细节知识点,优先级不高


12、如何自己实现v-model


13、多个组件有相同的逻辑,如何抽离?

◆nixin

◆以及mixin的一些缺点

1.变量来源不明确,不利于阅读。特别是在代码量大,引入多个mixin的情况下。                       

 2.多mixin变量名会冲突,会覆盖。                       

 3.mixin和组件可能出现多对多的关系,复杂度高。一个mixin对多个组件,多个组件对多个mixin




0人推荐
随时随地看视频
慕课网APP