前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >VUE钩子函数

VUE钩子函数

作者头像
用户9184480
发布2024-12-19 14:08:20
发布2024-12-19 14:08:20
8400
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行

钩子函数

指令定义函数提供了几个钩子函数(可选):

  • ​bind​​: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
  • ​inserted​​: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
  • ​update​​: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。
  • ​componentUpdated​​: 被绑定元素所在模板完成一次更新周期时调用。
  • ​unbind​​: 只调用一次, 指令与元素解绑时调用。

钩子函数参数

钩子函数的参数有:

  • el​: 指令所绑定的元素,可以用来直接操作 DOM 。
  • binding​: 一个对象,包含以下属性:
  • name​: 指令名,不包括 ​​v-​​ 前缀。
  • value​: 指令的绑定值, 例如: ​​v-my-directive="1 + 1"​​​, value 的值是 ​​2​​。
  • oldValue​: 指令绑定的前一个值,仅在 ​​update​​​ 和 ​​componentUpdated​​ 钩子中可用。无论值是否改变都可用。
  • expression​: 绑定值的表达式或变量名。 例如 ​​v-my-directive="1 + 1"​​​ , expression 的值是 ​​"1 + 1"​​。
  • arg​: 传给指令的参数。例如 ​​v-my-directive:foo​​​, arg 的值是 ​​"foo"​​。
  • modifiers​: 一个包含修饰符的对象。 例如: ​​v-my-directive.foo.bar​​​, 修饰符对象 modifiers 的值是 ​​{ foo: true, bar: true }​​。
  • vnode​: Vue 编译生成的虚拟节点。
  • oldVnode​: 上一个虚拟节点,仅在 ​​update​​​ 和 ​​componentUpdated​​ 钩子中可用。

以下实例演示了这些参数的使用:

代码语言:javascript
代码运行次数:0
复制
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>VUE钩子</title>
    <script src="js/vue.js"></script>
  </head>
  <body>
    <div id="app" v-aaa:hello.a.b="message"></div>
    <script>
      Vue.directive('aaa',{
        bind:function(el,binding,vnode){
          var s=JSON.stringify
          el.innerHTML=
              'name'+s(binding.name)+'<br/>'+
            'value'+s(binding.value)+'<br/>'+
            'express'+s(binding.expression)+'<br/>'+
            'argument'+s(binding.arg)+'<br/>'+
            'modifiers'+s(binding.modifiers)+'<br/>'+
            'vnode keys'+Object.keys(vnode).join(',')
        }
      })
      new Vue({
        el:'#app',
        data:{message:'晨光课堂教程'}
      })
    </script>
  </body>
</html>
VUE钩子函数_VUE
VUE钩子函数_VUE

钩子函数的简写:

代码语言:javascript
代码运行次数:0
复制
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>VUE钩子</title>
    <script src="js/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <div v-aaa="{color:'red',text:'晨光课堂'}"></div>
    </div>
    <script>
      Vue.directive('aaa',function(el,binding){
        //设置指令的背景颜色;
        el.innerHTML=binding.value.text
        el.style.backgroundColor=binding.value.color
      })
      new Vue({
        el:'#app'
      })
    </script>
  </body>
</html>
VUE钩子函数_VUE_02
VUE钩子函数_VUE_02
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 钩子函数
  • 钩子函数参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档