You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue 3 <script setup>语法下如何注册局部自定义指令

正确实现方法

在<script setup>中注册组件作用域的自定义指令不需要手动配置directives选项,只需要遵循特定的命名规则即可:指令对应的变量名必须以v为前缀,使用驼峰格式命名,Vue会自动将其识别为局部自定义指令。

示例代码

<script setup>
// 导入时重命名为 v 开头的驼峰格式
import { customDirective as vCustomDirective } from './customDirective';

// 如果是在当前组件内定义的指令,也遵循同样命名规则
const vFocus = {
  mounted: (el) => el.focus()
}
</script>

<template>
  <!-- 模板中可以直接用 kebab-case 格式调用 -->
  <div v-custom-directive></div>
  <input v-focus>
</template>

报错原因说明

你之前的写法没有将指令变量命名为v开头的驼峰格式,Vue编译时不会将其识别为自定义指令,因此模板调用时会抛出Failed to resolve directive的错误。

内容的提问来源于stack exchange,提问作者lejhbah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:15:00