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

Vue3如何使用Composition API定义无需全局注册的自定义指令?

Vue3 Composition API 局部注册自定义指令方案

你需要的实现方式完全可行,Vue3 针对 Composition API 场景原生支持组件局部注册自定义指令,无需在main.ts等入口文件做全局注册操作。

1. 自定义指令定义示例

自定义指令不是Vue组件,不需要用.vue后缀存储,建议存为.js/.ts格式文件,示例如下:

// @/directives/myDirective.ts
import type { Directive } from 'vue'

// 示例:自动给绑定元素添加边框、支持传参控制是否自动聚焦的指令
const myDirective: Directive = {
  // 指令首次绑定到元素时触发
  mounted(el, binding) {
    // 绑定元素添加默认边框
    el.style.border = '1px solid #409eff'
    // 如果传参不是false,自动聚焦
    if (binding.value !== false) {
      el.focus?.()
    }
  },
  // 绑定值更新时触发
  updated(el, binding) {
    if (binding.oldValue !== binding.value) {
      el.disabled = binding.value === false
    }
  },
  // 指令从元素上解绑时触发,清理副作用
  unmounted(el) {
    el.style.border = ''
  }
}

export default myDirective

2. 组件内导入使用

场景1:

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:45:06