随笔 - 156  文章 - 0  评论 - 3  阅读 - 10万

Vue — 自定义指令

一、自定义指令语法

1.全局注册

//main.js
Vue.directive('focus', {
  inserted(el) {
    el.focus(
  }
});
//App.vue
<input v-focus />

2.局部注册

复制代码
<script>
export default {
  directives: {
    'focus': {
     inserted(el) {
        el.focus()
      }
    }
  }
}
</script>
复制代码

二、自定义指令的值

复制代码
<h1 v-color="color1">测试11111</h1>
 <h1 v-color="color2">测试22222</h1>
//通过v-指令名 = “指令值”,通过=绑定指令的值

data(){
    return {
      color1 : 'pink',
      color2 : 'lightBlue'
    }
  },
  directives :{
    color : {
      inserted(el,binding){
    //binding.value拿到指令的值
        el.style.color = binding.value
      }
    }
  }
复制代码

三、自定义指令的钩子函数

复制代码
Vue.directive('custom-directive', {
  bind(el, binding, vnode) {
    // 指令绑定时的处理逻辑
  },
  inserted(el, binding, vnode) {
    // 元素插入到父节点时的处理逻辑
  },
  update(el, binding, vnode, oldVnode) {
    // 更新元素时的处理逻辑
  },
  componentUpdated(el, binding, vnode, oldVnode) {
    // 组件更新完成时的处理逻辑
  },
  unbind(el, binding, vnode) {
    // 解绑指令时的处理逻辑
  }
});

复制代码
在上面的代码中,bind、inserted、update、componentUpdated 和 unbind 是钩子函数,用于处理不同阶段的指令逻辑。这些钩子函数分别在不同的生命周期阶段被调用。
posted on   萬事順意  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示