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

  • 相关阅读:
    Tiny模板引擎之开发工具
    Tiny框架应用实践之Tiny社区
    TINY框架:组件化的J2EE开发框架
    TinyRMI---RMI的封装、扩展及踩到的坑的解决
    新手如何入门
    从应用示例来认识Tiny框架
    图形化插件对Eclipse的版本要求
    可不可以在局域网编译TINY?
    批量创建的方法
    不在框架中,利用Django的models操作
  • 原文地址:https://www.cnblogs.com/cyany/p/12665697.html
Copyright © 2011-2022 走看看