可复用性和组件(一)


好好学习,天天向上。

自定义指令

全局自定义指令

 //全局自定义指令 调用directive函数
//自定义指令名称是hello
Vue.directive('hello',{
    //钩子函数
    bind(el,binding,vnode){
         console.log(1234)
        //操作真实dom
        el.style.color = "red"
    }
})

钩子函数

一个指令定义对象可以提供下面几个钩子函数。

  • bind 只调用一次,指令第一次绑定的时候调用。
  • inserted 被绑定元素插入父节点时调用
  • update 所在组件的Vnode 更新时调用。
  • componentUpdated 指令所在组件的 VNode 及其子 VNode 全部更新后调用。
  • unbind 只调用一次,指令与元素解绑时调用。

钩子函数参数

  • el 指令所绑定的元素,可以用来直接操作 DOM。
  • binding 一个对象,包含以下 property
    • name 指令名,不包括 v- 前缀。
    • value 指令的绑定值。
    • oldValue 指令绑定的前一个值,仅在 updatecomponentUpdated 钩子中可用。无论值是否改变都可用。
  • oldVnode:上一个虚拟节点,仅在 updatecomponentUpdated 钩子中可用。

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

局部自定义指令

下面例子是一个自定义指令 v-setcolor 改变元素颜色

 const app = new Vue({
    el:"#app",
    data:{
        
    },
    //局部自定义指令 setcolor
    directives:{
        //自定义的指令名称不能含有大写字母
        setcolor:{
            inserted(el,binding,vnode){
                console.log("haha")
                el.style.color = binding.value
               
            }
        },
        //获取焦点指令 v-focus
        focus:{
            inserted(el,binding,vnode,oldVnode){
                 el.focus()
            }
}
    }
})

然后再body里面使用定义的自定义指令

 <div id="app">
    <div v-setcolor="red" v-focus>
        111
    </div>
</div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值