# Vue 面试题 1
基础:
1.介绍 Vue 的生命周期函数
2.MVC 和 MVVM 的区别
3.为什么 data 是一个函数
4.Vue 组件通讯有哪些方式
5.v-if 和 v-for 的区别
6.说说 vue 的内置指令
7.怎么理解 Vue 的单项数据流
8.computed 和 watch 的区别和运用的场景
9.v-if 和 v-for 为啥不建议一起使用
10.Vue 如何检测数组的变化
11.Vue3.0 用过吗?了解多少
12.Vue3.0 和 Vue2.0 的区别
13.Vue 的父子组件的生命周期钩子函数执行顺序
14.虚拟 DOM 是什么 有什么优缺点
15.v-model 的原理
16.v-for 为啥要加 key (可能会问 diff 算法)
17.Vue 的事件绑定的原理
18.vue-router 的路由钩子函数是什么 执行顺序是什么 (考察路由守卫)
19.谈一谈你对 vuex 的个人理解
20.vuex 页面刷新数据丢失怎么解决 (数据持久化问题)
21.vuex 为啥要分模块并且加命名空间
22.使用过 Vue SSR 吗? 说说 SSR
23.知道 SPA 说说 SPA
24.vue 中使用了那些设计模式
25.你都做过那些 vue 的性能优化
26.说说 Vue.mixin 的使用场景和原理
27.nextTick 的使用场景和原理
28.keep-alive 的使用场景和原理(可能会问 LRU 算法)
困难:
29.vue.set 方法原理
30.vue.extend 作用和原理
31.写过自定义指令吗?原理是什么
32.Vue 的修饰符有哪些 (事件修饰符和 v-model 修饰符,键盘事件修饰符,系统修饰键,鼠标按钮修饰符)
33.能说说 Vue 的模板编译原理吗?
34.能说说周期钩子是如何实现的吗?
35.函数式组件使用场景和原理
36.能说下 vue-router 中常用的路由模式实现原理吗?
37.diff 算法了解多少
38.LRU 算法了解多少,说说看