美文网首页vue集锦
Vue-自定义指令

Vue-自定义指令

作者: 小鱼儿_逆流而上 | 来源:发表于2019-02-16 15:19 被阅读0次
<label>
     Name: <input type="text" class="form-control" v-model="name" @keyup.f2 = "add">
</label>
<label>
     搜索名称关键字: <input type="text" class="form-control" v-model="keywords" v-focus v-color="'green'">
</label>
一、自定义全局按键修饰符
      Vue.config.keyCodes.f2 = 113;

二、使用 Vue.directive()定义全局的指令
其中:参数1——指令的名称,注意:在定义的时候,指令的名称前面,不需要加 v- 前缀
但是:在调用的时候,必须在指令名称前 加上 v- 前缀来进行调用
参数2:是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以在特定的阶段,执行相关的操作

        Vue.directive('focus',{
            bind:function(el){   //在内存中调用这个bind,所以它无法传递到页面中去
                               //每当指令绑定到元素上的时候,会立即执行这个 bind 函数,只执行一次
                               //注意:在每个函数中,第一个参数,永远是 el ,表示被绑定了指令的那个元素,这个el参数,是一个原生的JS 对象
                               //在元素 刚绑定了指令的时候,还没有 插入到 DOM 中去,这时候,调用 focus方法没有作用
                               //因为,一个元素,只有插入DOM 之后,才能获取焦点
                // el.focus() 
            },
            inserted:function(el){  //这个inserted就是从内存转入页面的过程,因此这个事件(行为)可以渲染到页面中
                                     //inserted 表示元素插入到DOM 中的时候,会执行 inserted 函数【触发一次】
                el.focus() 
                // 和JS 行为有关的操作,最好在inserted 中去执行,防止 JS 不生效
            },
            updated:function(el){   //当VNode更新的时候,会执行updated,可能会触发多次
                
            }
        })
三、自定义指令改变字体颜色
        Vue.directive('color',{
            // 样式,只要通过指令绑定给了元素,不管这个元素有没有被插入到页面中去,这个元素肯定有了一个内联样式
            // 将来元素肯定会显示到页面中,这时候,浏览器的渲染引擎必然会解析样式,应用给这个元素
            bind:function(el,binding){
                // el.style.color = 'red';
                // 和样式相关的操作,一般都可以在 bind 中执行

                // console.log(binding.value)    blue
                // console.log(binding.expression)   'blue'

                el.style.color = binding.value
            }
        })
四、自定义私有指令
<div id="app2">
    <p v-fontweight="1000" v-fontsize="'30px'">{{msg2 | dateFormat('')}}</p>
</div>
directives:{
     'fontweight':{
         bind:function(el,binding){
            el.style.fontWeight = binding.value
          }
      },


      // ** 这个 function 等同于 把 代码写到了 bind 和 update 中去
      'fontsize':function(el,binding){
          el.style.fontSize = parseInt(binding.value) + 'px'
       }
}

相关文章

  • vue-自定义指令

    然后你可以在模板中任何元素上使用新的 v-focus 属性,如下:

  • Vue-自定义指令

    一、自定义全局按键修饰符 二、使用 Vue.directive()定义全局的指令其中:参数1——指令的名称,注意:...

  • VUE-自定义指令

    有的情况下,需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。举个聚焦输入框的例子,如下:、 再如:...

  • Vue-自定义指令(属性指令和元素指令)

    1. 自定义指令属性指令 2. 自定义元素(标签)指令

  • Vue-自定义指令directive

    1. 什么是自定义指令? 就是自己设置的 v-属性,详细请看实例 2. 需要用到什么属性? directive(n...

  • vue中v-text和v-html的区别

    v-text 和 v-html的区别: vue-指令 v-text...

  • vue 有自定义指令

    vue 的自定义指令,分为全局自定义指令和局部自定义指令,局部自定义指令等价于局部组件。 自定义指令可以对DOM进...

  • Vue-指令

    以v-开头 一、文本操作指令 上一篇文章-插值 二、条件渲染指令 上一篇文章-条件与循环 三、列表渲染指令 上一篇...

  • Vue-指令

    一.文本操作指令 1.v-text 2.v-html 3.v-once 4.v-model 5.v-cloak 解...

  • vue-指令

    v-text 预期:string 详细: 更新元素的textContent。如果要更新部分的textContent...

网友评论

    本文标题:Vue-自定义指令

    本文链接:https://www.haomeiwen.com/subject/rvazkqtx.html