前端/移动开发面试题更新 2026-08-05

在 Vue 开发中,常用的表单修饰符和事件修饰符分别有哪些?请列举并说明其各自的用途。

前端/移动开发技术原理Vue

考察说明

考查对 Vue 内置修饰符的熟悉程度,以及能否准确区分表单修饰符和事件修饰符。

回答思路

  1. 【回答框架 1】Vue 提供的事件修饰符有 .stop、.prevent、.capture、.self、.once、.passive 等。.stop 阻止冒泡,.prevent 阻止默认行为,.capture 使用捕获模式,.self 只在事件目标是自身时触发,.once 事件只触发一次,.passive 表示不调用 preventDefault。
  2. 【回答框架 2】Vue 提供的表单修饰符有 .lazy、.number、.trim。.lazy 将 input 事件改为 change 事件触发同步,.number 自动将输入转为数字类型,.trim 自动过滤首尾空格。
  3. 【回答框架 3】修饰符可以串联使用,例如 .stop.prevent 同时阻止冒泡和默认行为;也可以与按键修饰符(如 .enter)组合。但 .passive 与 .prevent 不能同时使用,否则浏览器会给出警告并忽略 .prevent。
  4. 【回答框架 4】在组件上使用事件修饰符时,需要配合 $emit 触发的事件,修饰符对原生事件不生效。表单修饰符常用于 v-model 绑定,但 .number 和 .trim 对输入框的 value 处理有差异,使用时需注意类型转换和值处理。
  5. 【关键点 1】事件修饰符:.stop 阻止冒泡,.prevent 阻止默认事件,.once 只触发一次,.self 只在自身触发。
  6. 【关键点 2】表单修饰符:.lazy 改为 change 触发,.number 自动转数字,.trim 去除首尾空格。
  7. 【关键点 3】修饰符可串联,但 .passive 与 .prevent 不能同用,在组件上使用修饰符需配合 $emit。
  8. 【易错点 1】容易将 .prevent 和 .stop 的作用混淆,或在不需要时滥用导致事件流异常。
  9. 【易错点 2】.passive 与 .prevent 同时使用会忽略 .prevent 并产生警告,应避免。
  10. 【易错点 3】对组件使用修饰符时,需明确修饰符作用于原生事件还是自定义事件,否则不生效。