2026 VUE前端面试常考

3 阅读1分钟

最常问的概念性的问题,其余的vue的一些语法糖的用法在这里就不列举了;

什么是双向数据绑定

model->View
View->Model

实现的方式主要是通过v-model的语法糖实现的:

vue3和vue2的区别

  • 响应式

    • vue2:object.defineProperty
    • vue3:Proxy
  • **Composition API vs Options API

  • 性能与渲染机制

    • vue3在运行时和编译优化上更激进:
      • 在编译阶段生成更多优化的提示(patch flags),减少运行时diff成本
      • 更好的tree shaking(按需引入)
    • vue2
      • 缺乏

vue的双向数据绑定为什么不会死循环

1.依赖追踪是单向的:读取时收集依赖,写入时触发更新; 2.更新是异步批处理的:

v-model向上会写的时候只有在用户事件input、change时发生。

vue的diff算法

1.同层比较; 2.节点是否可复用: 3.有key的话基于key做映射; 4.子节点更新:双端比较

vue3如何实现数据绑定

  1. 读(get):依赖收集
  2. 写(set):触发更新
  3. Reflect的角色:是拦截器,使用Reflect.get / Reflect.set来做标准读写,语义更明确

回答:用proxy实现,vue会把数据对象包一层Proxy,在get时做依赖收集,在set时做依赖触发。把副作用函数放入调度队列中,进行去重与批量刷新,从而驱动组件重新渲染并且更新dom。