zoukankan      html  css  js  c++  java
  • [Vue] : 自定义指令

    自定义指令

    • 使用Vue.directive()定义全局的指令v-focus
    • 参数1 :指令的名称,注意,在定义的时候,名称前面不需要加 v- 前缀,但在调用的时候,必须在指令名称前加上 v- 前缀来进行调用
    • 参数2: 是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以在特定的阶段,执行相关的操作。
    • 常用的指令相关函数有bind, inserted, update
    • 在每个函数中,第一个参数,永远是 el ,表示被绑定了指令的那个元素,这个 el 参数,是一个原生的JS对象
    • bind: 每当指令绑定到元素上的时候,会立即执行这个 bind 函数,只执行一次,样式相关的可以在bind中设置
    • inserted: 元素插入到DOM中的时候,会执行 inserted 函数【触发1次】,和JS行为有关的操作,最好在 inserted 中去执行,放置 JS行为不生效
    • updated: 当VNode更新的时候,会执行 updated, 可能会触发多次
    • font-weight是一种函数简写 方式
    1. 自定义全局和局部的自定义指令:
        // 自定义全局指令 v-focus,为绑定的元素自动获取焦点:
        Vue.directive('focus', {
          inserted: function (el) { // inserted 表示被绑定元素插入父节点时调用
            el.focus();
          }
        });
    
        // 自定义局部指令 v-color 和 v-font-weight,为绑定的元素设置指定的字体颜色 和 字体粗细:
          directives: {
            color: { // 为元素设置指定的字体颜色
              bind(el, binding) {
                el.style.color = binding.value;
              }
            },
            'font-weight': function (el, binding2) { // 自定义指令的简写形式,等同于定义了 bind 和 update 两个钩子函数
              el.style.fontWeight = binding2.value;
            }
          }
    
    1. 自定义指令的使用方式:
    <input type="text" v-model="searchName" v-focus v-color="'red'" v-font-weight="900">
    
  • 相关阅读:
    Java作业5.17
    上机作业5.14
    android 计算器
    安卓第四周作业
    课后作业
    5.28上机作业
    5.22作业
    5.21 作业
    5.20作业
    上机作业5.14
  • 原文地址:https://www.cnblogs.com/moon1992/p/11075011.html
Copyright © 2011-2022 走看看