一、Vue 基础
- Vue的基本原理
- 双向数据绑定的原理
- 使用 Object.defineProperty() 来进行数据劫持有什么缺点?
- MVVM、MVC、MVP的区别
- Computed 和 Watch 的区别
- Computed 和 Methods 的区别
- slot是什么?有什么作用?原理是什么?
- 过滤器的作用,如何实现一个过滤器
- 如何保存页面的当前的状态
- 常见的事件修饰符及其作用
- v-if、v-show、v-html 的原理
- v-if和v-show的区别
- v-model 是如何实现的,语法糖实际是什么?
- v-model 可以被用在自定义组件上吗?如果可以,如何使用?
- data为什么是一个函数而不是对象
- 对keep-alive的理解,它是如何实现的,具体缓存的是什么?
- $nextTick 原理及作用
- Vue 中给 data 中的对象属性添加一个新的属性时会发生什么?如何解决?
- Vue中封装的数组方法有哪些,其如何实现页面更新
- Vue 单页应用与多页应用的区别
- Vue template 到 render 的过程
- Vue data 中某一个属性的值发生改变后,视图会立即同步执行重新渲染吗?
- 简述 mixin、extends 的覆盖逻辑
- 描述下Vue自定义指令
- 子组件可以直接改变父组件的数据吗?
- Vue是如何收集依赖的?
- 对 React 和 Vue 的理解,它们的异同
- Vue的优点
- assets和static的区别
- delete和Vue.delete删除数组的区别
- vue如何监听对象或者数组某个属性的变化
- 什么是 mixin ?
- Vue模版编译原理
- 对SSR的理解
- Vue的性能优化有哪些
- 对 SPA 单页面的理解,它的优缺点分别是什么?
- template和jsx的有什么分别?
- vue初始化页面闪动问题
- extend 有什么作用
- mixin 和 mixins 区别
- MVVM的优缺点?
二、生命周期
- 说一下Vue的生命周期
- Vue 子组件和父组件执行顺序
- created和mounted的区别
- 一般在哪个生命周期请求异步数据
- keep-alive 中的生命周期哪些
三、组件通信
- 组件通信的方式
四、路由
- Vue-Router 的懒加载如何实现
- 路由的hash和history模式的区别
- 如何获取页面的hash变化
- route 和route和router 的区别
- 如何定义动态路由?如何获取传过来的动态参数?
- Vue-router 路由钩子在生命周期的体现
- Vue-router跳转和location.href有什么区别
- params和query的区别
- Vue-router 导航守卫有哪些
- 对前端路由的理解
五、Vuex
- Vuex 的原理
- Vuex中action和mutation的区别
- Vuex 和 localStorage 的区别
- Redux 和 Vuex 有什么区别,它们的共同思想
- 为什么要用 Vuex 或者 Redux
- Vuex有哪几种属性?
- Vuex和单纯的全局对象有什么区别?
- 为什么 Vuex 的 mutation 中不能做异步操作?
- Vuex的严格模式是什么,有什么作用,如何开启?
- 如何在组件中批量使用Vuex的getter属性
- 如何在组件中重复使用Vuex的mutation 六、Vue 3.0
- Vue3.0有什么更新
- defineProperty和proxy的区别
- Vue3.0 为什么要用 proxy?
- Vue 3.0 中的 Vue Composition API?
- Composition API与React Hook很像,区别是什么
七、虚拟DOM
- 对虚拟DOM的理解?
- 虚拟DOM的解析过程
- 为什么要用虚拟DOM
- 虚拟DOM真的比真实DOM性能好吗
- DIFF算法的原理
- Vue中key的作用
- 为什么不建议用index作为key?
(2)思维导图
下图对Vue面试题的考察频率进行了大致的区分,可以选择性的学习:
(3)答案解析
vue答案解析地址:前端面试题库