前端实习Vue面试题总结

从一些面经里面扒出来整理的

框架其实感觉不是重点考察的点啊 但是简单的八股还是要背背 原理这些我感觉无所谓 因为我React原理背了一堆感觉也没什么用

一、基础概念与原理
1. Vue 的 MVVM 模式是什么?
MVVM(Model-View-ViewModel)通过数据绑定实现视图与数据的自动同步。
  - Model:数据层,负责业务逻辑。
  - View:UI 层,展示数据。
  - ViewModel:双向绑定桥梁,监听数据变化并更新视图。
2. Vue2 与 Vue3 的核心区别
  - 响应式系统:Vue2 使用 Object.defineProperty,Vue3 改用 Proxy,支持深层对象和数组监听。
  - Composition API:Vue3 提供更灵活的代码组织方式,替代 Options API 的逻辑分散问题。
  - 性能优化:Vue3 通过静态提升(Static Hoisting)和 Patch Flag 减少虚拟 DOM 对比开销。
3. Vue 生命周期钩子函数及作用
  - 创建阶段:beforeCreate(数据未初始化)、created(可访问数据,但 DOM 未挂载)。
  - 挂载阶段:beforeMount(模板编译完成)、mounted(DOM 渲染完成,适合异步请求)。
  - 更新阶段:beforeUpdate、updated(数据变化后触发)。
  - 销毁阶段:beforeDestroy(清理定时器)、destroyed。
二、核心机制与优化
4. 响应式原理实现
  - Vue2:通过 Object.defineProperty 递归劫持对象属性,结合发布-订阅模式收集依赖。
  - Vue3:基于 Proxy 代理对象,支持动态属性添加和数组索引修改,减少初始化性能损耗。
5. 虚拟 DOM 与 Diff 算法的作用
  - 虚拟 DOM:JS 对象模拟真实 DOM,减少直接操作 DOM 的性能损耗。
  - Diff 算法:同级对比新旧虚拟 DOM,通过 Key 标识复用节点,最小化更新范围。
6. Computed 和 Watch 的区别
  - Computed:依赖缓存,适合派生数据(如过滤列表),仅在依赖变化时重新计算。
  - Watch:监听数据变化执行回调,支持异步操作,适用于数据变动后的复杂处理。
三、组件与通信
7. 组件通信方式
  - 父子组件:props 传值,$emit 触发事件。
  - 跨层级:provide/inject(依赖注入)、Vuex 全局状态管理。
  - 兄弟组件:事件总线(Event Bus)或通过父组件中转。
8. 动态组件与异步组件
  - 动态组件:使用  动态切换组件。
  - 异步组件:通过 defineAsyncComponent 或路由懒加载(() => import('./Component.vue'))优化首屏性能。
9. 插槽(Slots)的应用场景
  - 默认插槽: 接收父组件内容。
  - 具名插槽: 指定插入位置。
  - 作用域插槽:子组件通过 v-bind 传递数据给父组件14。
四、路由与状态管理
10. Vue Router 的导航守卫
  - 全局守卫:beforeEach(路由跳转前鉴权)、afterEach(跳转后操作)。
  - 路由独享守卫:beforeEnter。
  - 组件内守卫:beforeRouteEnter(无法访问 this)、beforeRouteUpdate。
11. Vuex 的核心概念
  - State:存储全局状态。
  - Mutations:同步修改状态(通过 commit 触发)。
  - Actions:异步操作后提交 Mutations(通过 dispatch 触发)。
  - Getters:计算派生状态。
五、高频实战问题
12. v-if 与 v-show 的区别
  - v-if:条件渲染,销毁/重建 DOM,适用于切换频率低的场景。
  - v-show:通过 CSS display 控制显示,适合频繁切换。
13. v-for 为何需要 Key?
Key 帮助 Vue 识别节点身份,优化 Diff 算法效率,避免渲染错误
14. Vue 性能优化手段
  - 使用 v-once 或 v-memo 缓存静态内容。
  - 路由懒加载、组件异步加载。
  - 避免深层响应式对象,合理使用 Object.freeze。
六、原理类高频问题
1. Vue 的响应式系统中,Object.defineProperty 和 Proxy 在实现上有何本质区别?Vue3 改用 Proxy 解决了哪些痛点?
(提示:数组监听、动态属性、性能开销)
2. 依赖收集(Dependency Collection)和派发更新(Trigger Updates)的具体流程是怎样的?请描述 Dep 和 Watcher 的协作关系。
(提示:发布-订阅模式、getter/setter 触发时机)
3. Vue 的模板编译过程经历了哪几个阶段?如何将模板字符串转换为渲染函数?
(提示:解析器生成 AST → 优化器标记静态节点 → 代码生成器生成 render 函数)
4. 虚拟 DOM 的 Diff 算法中,为什么要优先进行“同层比较”而不是跨层递归?Key 值在 Diff 过程中起到了什么作用?
(提示:时间复杂度优化、节点复用策略)
5. Vue 的异步更新队列(Async Update Queue)是如何工作的?为什么修改数据后立即访问 DOM 可能获取不到最新值?
(提示:nextTick 实现原理、事件循环与微任务)
6. Vue3 的静态提升(Static Hoisting)和 Block Tree 机制如何优化渲染性能?
(提示:跳过静态节点比对、动态节点标记 Patch Flags)
7. 计算属性(Computed)的缓存特性是如何实现的?与普通方法调用有何本质区别?
(提示:脏检查机制、依赖追踪)
8. Vue 组件实例化过程中,data 选项为什么要用函数返回对象,而不是直接写对象?
(提示:避免多个实例共享同一数据引用)
9. Vue 的事件系统是如何实现 v-on 的?事件修饰符(如 .native)底层做了哪些处理?
(提示:原生事件与自定义事件的分发机制)
10. Vue3 的 Composition API 如何解决逻辑复用问题?对比 Mixins 和 Hooks 的优缺点。
(提示:命名冲突、代码组织、类型推导)
全部评论
vue可能问的原理会比react多我主react的时候实习面试时候真感觉问的很少
2 回复 分享
发布于 2025-03-01 23:26 美国
mark收藏感谢分享
1 回复 分享
发布于 2025-03-31 12:39 湖北
原理理解更重要
点赞 回复 分享
发布于 2025-03-09 16:43 湖北
mark收藏感谢分享
点赞 回复 分享
发布于 2025-03-06 10:51 北京
框架背诵有点多
点赞 回复 分享
发布于 2025-03-02 09:55 河北
框架原理还是挺重要的面腾讯就被问到了
点赞 回复 分享
发布于 2025-03-01 22:57 陕西
看运气吧 我最近的面试都深挖了框架原理
点赞 回复 分享
发布于 2025-03-01 19:34 广东

相关推荐

11/20 火山引擎一面如何选择学习前端的学习前端过程中的感受学习过程中一些自己解决得比较有难度,比较有成就感的事页签为什么不用第三方库,和你自己做的区别是什么不同页签之间的 url 相同吗如何区分不同页签的(动态路由参数)说一下你对 websocket 的了解Websocket 如何拿到历史消息说一下文件在服务端被 ai 解析的大致流程,涉及到了哪些技术平时有用一些 ai 工具吗介绍一下双 token 无感刷新的原理请求出错时如何处理为什么不用单 token,直接延长 token 有效期不行吗为什么不全部存在 cookie 里Http 状态码有哪些500 系列一般代表什么如何处理跨域Cors 能设置哪些字段,能设置什么维度的跨域,除了域名还能设置什么什么是组合式 api,有什么好处虚拟 dom 是什么为什么一些框架的最新版在尝试去掉虚拟 dom实现一个 event 类Js 编码二叉树的实现与遍历Js 闭包应用手写11/27 火山引擎二面自我介绍接触前端时间,怎么学习的介绍一下项目,包含业务场景介绍一下技术难点介绍一下基于 websocket 的库的选择你提到了自己封装了 websocket 类,和这些库的区别是什么描述一下这个类主要的功能和 apiStomp 和 websocket 的区别是什么从网络协议七层模型上看的话,stmop 位于哪一层Tcp 和 udp 的区别Stomp 支持二进制数据传输吗还了解别的类似 stmop 的协议吗知识库用到了 rag 吗介绍第二个项目有用到微前端吗你提到了多页签功能,页签之间的隔离怎么做的权限控制的力度是怎么样的,做到了什么层级登陆怎么做的,基于 sso 还是 oauth介绍一下你了解的 oauth 的底层原理登陆态是如何保存的Jwt 的优势是什么Keep-alive 的底层原理是什么讲讲泛型判断一个变量的类型有多少种方法Promise 有多少种状态Promise all 和 race 的区别Race 的第一个失败了怎么办,会执行第二个吗,返回结果是什么前端的网络安全了解 csp 吗说一下对前端工程化的理解前端有哪些性能优化的手段了解 webpack 的 model federation 吗最小子数组和(不要求时间复杂度)实现一个 event 类12/02 字节火山三面自我介绍介绍部门业务,商业化逻辑自己的规划是什么样的介绍学生干部经历,比赛经历如何激励同学们参加学生活动的比赛中团队做了什么,自己做了什么事你觉得你们的比赛课题有实践前途吗复盘的话后续有哪些可以优化的点讨论比赛项目前端当中,做的那些事对个人成长帮助比较大说一下产品形态和技术方案这个项目是你从 0 到 1 去做的吗你刚开始的时候是如何设计代码框架的为了保证项目的扩展性,做了哪些抽象详细介绍业务拆分逻辑,一直往下拆分的话会到什么程度一个比较完整的技术方案需要包含哪些内容如何确保工程稳定性,怎么选择一个好的技术栈做业务的时候涉及到了哪些,技术栈当中有没有需要提前确定的部分什么时候开始学习的前端有什么快速学习的方法吗工作过程中,你喜欢和不喜欢和拥有什么特质的人合作针对不喜欢的人如何共处你会去做 final call 吗,强行做决定可能有哪些问题反问秋招最后的面试了,拖了好久的面经一直懒得写,但看起来有不少同学应该用得上,还是写出来了,字节的三面确实会更注重考察候选者的个人潜质和 leadership,和之前的其他的技术三面感觉很不一样
点赞 评论 收藏
分享
评论
37
201
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务