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


