Vue面试题详解(1)
冰洋 3/12/2020 Vue
# 1. 谈一下你对mvvm的理解?
# 2. 请说一下响应式数据的原理?
# 3. vue中是如何检测数组变化?
# 4. 为何vue采用异步渲染?
- 因为如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染.所以为了性能考虑。 Vue 会在本轮数据更新后,再去异步更新视图!
# 5. nextTick实现原理?
- nextTick方法主要是使用了宏任务和微任务,定义了一个异步方法.多次调用nextTick 会将方法存入 队列中,通过这个异步方法清空当前队列。 所以这个 nextTick 方法就是异步方法
# 6. vue中computed的特点
- 默认 也是一个 是具备缓存的,只要当依赖的属性发生变化时才会更新视图
# 7. watch
中的deep:true
是如何实现的
# 8. vue组件的生命周期
- 每个生命周期什么时候调用的
- 每个生命周期内可以做什么事情
# 9. ajax放在那个生命周期内?
- 在created的时候,视图中的 dom 并没有渲染出来,所以此时如果直接去操 dom 节点,无法找到相 关的元素
- 在mounted中,由于此时 dom 已经渲染出来了,所以可以直接操作 dom 节点
- 一般情况下都放到 mounted 中,保证逻辑的统一性,因为生命周期是同步执行的, ajax 是异步执行的
- 服务端渲染不支持mounted方法,所以在服务端渲染的情况下统一放到created中
# 10. 合适调用beforeDestroy?
- 可能在当前页面中使用了 $on 方法,那需要在组件销毁前解绑。
- 清除自己定义的定时器
- 解除事件的绑定 scroll mousemove ....