Vue3 与 TypeScript 前端高频面试题解析
初探、模板与指令
谈谈你对 Vue 的理解,有哪些重要的版本,Vue3 新增了哪些新特性
Vue 是一个渐进式 JavaScript 框架。
- 2013 年诞生
- 2016 年发布 2.0
- 2019 年发布 2.6
- 2020 年 9 月发布 3.0(代号海贼王)
- 2021 年 8 月发布 3.2(Script Setup 语法糖)
Vue 3 主要新特性:
- 组合式 API (Composition API):相比选项式 API,更接近原生 JS,方便逻辑封装和复用。
- 单文件组件中的组合式 API 语法糖 (
<script setup>):在<script>中直接写变量,无需setup函数包裹。 - Teleport 组件:将组件内部的一部分模板'传送'到 DOM 结构外层的位置。
- Fragments 片段:正式支持多根节点的组件。
- Emits 组件选项:声明自定义事件,
.native修饰符已移除。 - createRenderer API:来自
@vue/runtime-core,用于创建自定义渲染器。 - 状态驱动的 CSS 变量:在
<style>中使用v-bind。 - Suspense:实验性异步组件加载处理。
常用指令说明
{{}}:大括号内为 JS 环境,支持三元表达式/拼接等。v-text/v-html:覆盖元素内容,慎用v-html(XSS 风险)。v-cloak/v-pre/v-once:开发阶段常用,生产环境较少使用。v-bind:绑定属性数据,简写为:。减少 DOM 操作。v-on:绑定事件。推荐函数名以on开头,定义在methods中。支持事件修饰符(stop, prevent)和键盘修饰符。v-for:遍历数组、对象或数字。key的作用和原理见下文。优先级低于v-if(Vue 3)。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总是优先于v-for生效,以减少不必要的渲染。


