Vue3自定义指令使用

自定义指令使用文档:https://cn.vuejs.org/guide/reusability/custom-directives.html

自定义指令是一个对象 ,它自己有一个生命周期,一个很常见的情况是仅仅需要在 mounted 和 updated 上实现相同的行为,除此之外并不需要其他钩子。

在不同情况下使用方式不同:

第一种使用:<script lang="ts">,局部注册

<div v-bttn="'ggg'">nihao</div>

<script lang="ts">
export default {
    directives: {
        bttn: {
            mounted(el, binding) {
                console.log('###############')

                console.log({ el, binding })
            },
            updated(el, binding) {
                console.log('###############')
                console.log({ el, binding })
            },
        },
    },
}
</script>

第二种使用 :<script lang="ts" setup>,不需要注册,直接使用

 <div class="protocol-input">
     <el-input
         clearable
         v-model.trim="data.input"
         placeholder="请输入协议名称"
         class="input-with-select"
         @change="search"
         maxlength="64"
         :suffix-icon="Search"
         v-focus
      />
 </div>
 <el-button type="primary" class="addBtn" v-btn="'ggg'">新&nbsp;增</el-button>



<script lang="ts" setup>
const vFocus = {
    mounted(el, binding) {
        console.log('----------')

        console.log({ el, binding })
    },
    updated(el, binding) {
        console.log('----------')
        console.log({ el, binding })
    },
}
const vBtn = {
    mounted(el, binding) {
        console.log('*************')

        console.log({ el, binding })
    },
    updated(el, binding) {
        console.log('*************')
        console.log({ el, binding })
    },
}
</script>

注意:使用必须是【v+大写开头】,否则不生效

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值