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 的区别。
    image.png
    既然聊到了 MVVM,面试官往往会考察 Vue 是如何实现 MVVM的,顺带也就会问到响应式原理和依赖收集原理。

    以 Vue2.x 为例,vue 的源码结构大概如下:

    • compiler (模板编译)
    • core (运行时核心代码)
    • platforms (多平台相关)
    • server (服务端渲染相关)
    • sfc (单文件组件)
    • shared (公共方法及字典)

    https://ustbhuangyi.github.io/vue-analysis/