Vue3 与 TypeScript 前端高频面试题详解
初探 Vue 与核心特性
谈谈你对 Vue 的理解及版本演进
Vue 是一个渐进式 JavaScript 框架。从 2013 年诞生,到 2016 年发布 2.0,再到 2020 年 9 月推出 3.0(代号海贼王),以及 2021 年 8 月的 3.2 版本引入 <script setup> 语法糖。
Vue 3 值得关注的核心新特性:
- 组合式 API (Composition API):相比选项式 API,它更贴近原生 JS 逻辑,方便封装和复用逻辑。
- 单文件组件语法糖 (
<script setup>):在<script>标签中直接编写顶层代码,无需setup函数包裹,代码更简洁。 - Teleport 组件:允许将组件的一部分模板'传送'到 DOM 结构的其他位置,常用于模态框等场景。
- Fragments (片段):正式支持多根节点的组件,不再需要包裹一个额外的 div。
- Emits 选项:用于声明组件触发的自定义事件,
.native修饰符已移除,需显式声明以避免多次触发警告。 - Suspense:实验性功能,用于处理异步依赖的加载状态。
- 样式增强:支持在
<style>中使用v-bind绑定 CSS 变量,以及 scoped 样式的全局规则和插槽内容规则。
注:Vue 3 发展经历了从类似 Vue 2 的选项式 API,到更接近原生 JS 的组合式 API 的演变,旨在提升代码的可维护性和逻辑复用能力。
常用指令与原理
常用指令速查
- 插值表达式
{{}}:JS 环境,支持三元运算符、拼接等。 - v-text / v-html:覆盖元素内容,注意 XSS 风险。
- v-cloak / v-pre / v-once:开发阶段优化或特殊渲染控制,生产环境较少使用。
- v-bind (:prop):动态绑定属性,减少 DOM 操作,简写为冒号。
- v-on (@event):事件监听。建议函数名以
on开头,定义在 methods 中,配合事件修饰符(stop, prevent, key 等)使用。 - v-for:遍历数组、对象或数字。需注意
key的作用和与v-if的优先级问题。 - v-if / v-show:条件渲染与显示控制。
- v-memo:了解即可,用于指定缓存区域避免重复渲染。
v-for 中 key 的作用与原理
- 作用:唯一标识列表项,防止出现渲染 bug,提升 diff 算法性能。
- 原理:底层 Diff 算法在同层比较时,根据
key决定是替换、修改还是删除节点,而非仅靠索引。
v-if 与 v-for 的优先级
- Vue 2.x:
v-for优先级高于v-if。 - Vue 3.x:
v-if总是优先于 生效。


