Vue 在面试中有两种面试思路,一是从知识点为抓手提问相关知识点,另外一种就是从源码出发。
Vue 在面试中常考的主要有以下几点:
- Vue 基础使用相关
- Computed 和 Watch 的区别
- Computed 和 Methods 的区别
- 插槽的作用
- data 在什么情况下是一个函数?
- 如何实现一个过滤器?
- 如何实现一个指令?
- vue 是如何监听对象和数组的变化的?
- v-if 和 v-for 谁的优先级更高?
- 组件通信的方法
- Vue 底层原理
- 双向数据绑定原理
- 依赖收集原理
- v-if、v-show、等指令的原理
- v-model 的原理
- nextTick 的原理及作用
- keep-alive 的作用及原理
- Vue Router 底层原理
- 路由的懒加载是如何实现的?
- Vue Router 的导航守卫有哪些?
- hash 和 history 路由的区别
- Vuex 底层原理
- Vuex 的原理
- Vuex 和 Vue 的区别?为什么需要状态管理?
- Vuex 有哪些 api
- mutation 和 action 的区别?为什么要这样设计?
- Vue 3.0
- defineProperty 和 Proxy 的区别?
- 虚拟 DOM
- diff 算法的原理
- 为什么不建议用 index 作为 key
- Vue 中虚拟 DOM 解析的过程
Vue 是一个 MVVM 的前端框架,提到 Vue,难免会问到 MVVM 和 MVC,MVP 的区别。
既然聊到了 MVVM,面试官往往会考察 Vue 是如何实现 MVVM的,顺带也就会问到响应式原理和依赖收集原理。
以 Vue2.x 为例,vue 的源码结构大概如下:
- compiler (模板编译)
- core (运行时核心代码)
- platforms (多平台相关)
- server (服务端渲染相关)
- sfc (单文件组件)
- shared (公共方法及字典)