zoukankan      html  css  js  c++  java
  • vue自定义指令

    局部指令

    		directives:{
    			focus:{
    				inserted:function(el){
    					el.focus();
    				}
    			}
    		},
    
    
    	<input type="text" v-focus>
    

    全局指令

    /*
    * @Author: cyany_blue
    * @Date:   2020-04-09 11:12:03
    * @Last Modified by:   cyany_blue
    * @Last Modified time: 2020-04-09 11:20:13
    */
    import Vue from "vue"
    
    Vue.directive('f',{
    	inserted:function(el,binding,vnode,oldVnode){
    		el.focus();
    		console.log(el,binding,vnode,oldVnode)
    	}
    })
    
    在main.js 直接导入import './tool/directives/f.js'
    

    钩子函数
    bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。
    inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
    update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。
    componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。
    unbind:只调用一次,指令与元素解绑时调用。

    钩子参数
    钩子函数的参数 (即 el、binding、vnode 和 oldVnode)

    Vue.directive('f',{
    	inserted:function(el,binding,vnode,oldVnode){
    		el.focus();
    		console.log(el,binding,vnode,oldVnode);
    		 var s = JSON.stringify;
    		let a =   'name: '       + s(binding.name) + '<br>' +
          'value: '      + s(binding.value) + '<br>' +
          'expression: ' + s(binding.expression) + '<br>' +
          'argument: '   + s(binding.arg) + '<br>' +
          'modifiers: '  + s(binding.modifiers) + '<br>' +
          'vnode keys: ' + Object.keys(vnode).join(', ');
          console.log(a);
    	}
    })
    

    reference link:https://cn.vuejs.org/v2/guide/custom-directive.html

  • 相关阅读:
    ha-wordy-Write-up
    HA: Infinity Stones-Write-up
    为什么k8s引入pod概念?
    vxlan 跨网段虚拟机迁移
    交换机配置
    Git四大组件(转)
    php-fpm
    docker容器中用户自定bridge网络与默认bridge网络之间的区别
    原型链
    'style-loader', 'css-loader'使用
  • 原文地址:https://www.cnblogs.com/cyany/p/12665697.html
Copyright © 2011-2022 走看看