Vue的自定义指令

Posted on   猫头唔食鱼  阅读(241)  评论(0编辑  收藏  举报

在main.js中使用Vue.directive({'directiveName',bind(el,binding,vnode)});

注:Vue.directive要写在new Vue之前

参数说明:el 是使用自定义指令的标签

     binding.value是指令中等号后的值

     binding.arg是指令中冒号后值

例子:

main.js

复制代码
import Vue from 'vue'
import App from './App'

Vue.config.productionTip = false
Vue.directive("test",{
  bind(el,binding,vnode){
    el.style.background = "red"
  }
})

//bind.value 是指指令等号后的内容
Vue.directive('green',{
  bind(el,binding,vnode){
    if(binding.value=="200"){
      el.style.background = "green"
      el.style.width = "200px"
      el.style.height = "200px"
    }
    
  }
})

//bind.value 是指指令冒号后面的内容
Vue.directive('orange',{
  bind(el,binding,vnode){
    if(binding.arg =="set"){
      el.style.background = "orange"
      el.style.width = "200px"
      el.style.height = "200px"
    }
  }
})
/* eslint-disable no-new */
new Vue({
  el: '#app',
  components: { App },
  template: '<App/>'
})
复制代码

 

Home.vue

复制代码
<template>
<div>
    <div class="one" v-test></div>
    <div v-green="200"></div>
    <div v-orange:set></div>
</div>
</template>
<script>
export default {
  name: "Home",
  data () {
    return {
    };
  }
}
</script>
<style lang="css" scoped>
.one{
    width: 200px;
    height: 200px;
}
</style>
复制代码

 

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示