首页 > 其他分享 >VUE2 自定义指令

VUE2 自定义指令

时间:2023-02-28 16:46:51浏览次数:43  
标签:console 自定义 big binding element 指令 VUE2

简写方式(有弊端)

<h2>{{name}}</h2>
<h2>当前的n值是:{{n}} </h2>
<h2 v-big="n">放大10倍后的n值是:{{n}} </h2>
<button @click="n++"> </button>
data(){
    return{
        name: "张三"
        n: 1
    }
},
directives:{
    //自定义指令被调用的时机:
    //1. 指令与元素成功绑定时(即一开始)
    //2. 指令所在的模板被重新解析时(即如果这里的“name”发生改变,自定义指令也会被调用)
    big(element, binding){
        //console.dir(element)                  //这里可以输出element在控制台中查看其属性和方法,上面的v-big所在的<h2>标签就是真实的DOM
        //console.log(element instanceof HTML)  //输出结果为true,也表示上面的v-big所在的<h2>标签就是真实的DOM
        //console.log(binding)                  //这里可以输出看下其身上的对象,这个v-big是绑定在第二个<h2>标签上的
        //console.log(this)                     //这里的this是window
        element.innerText = binding.value * 10  //其本质就是操作DOM元素,这里就是实现其放大10倍的功能
    }
}

完整写法

自定义指令的生命周期钩子 bind()、inserted()、updata()

<input type="text" v-fbind:value="n" />
<script>
    directives:{
        fbind:{
            //指令与元素成功绑定时(即一开始)
            bind(element, binding){
                element.value = binding.value
                //console.log(this)            //这里的this是window
            },
            //指令所在元素被插入页面时
            inserted(element, binding){
                element.focus()
                //console.log(this)            //这里的this是window
            },
            //指令所在的模板被重新解析时
            update(element, binding){
                element.value = binding.value
                //console.log(this)           //这里的this是window
            }
        }
    }
</script>

自定义指令语法规范

<span v-big-number="n"></span>   <!-- 如果出现两个英文单词时的写法 -->
<script>
    directives:{
        'big-number':function(element, binding){}
   //或 'big-number':(element, binding){}
    }
</script>

全局自定义指令

// 注意:全局要用 directive,而局部要用 directives
Vue.directive('big',function(){element, binding})    // 回调函数式写法
Vue.directive('fbind',{                              // 配置对象写法(完整写法)
    bind(element, binding){},
    inserted(element, binding){},
    update(element, binding){}
})

标签:console,自定义,big,binding,element,指令,VUE2
From: https://www.cnblogs.com/DTCLOUD/p/17164941.html

相关文章

  • DataTransfer.setDragImage()自定义拖拽图像遇到的坑
    发生拖动时,从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针。这个图片是自动创建的,你不需要自己去创建它。然而,如果想要设置为自定义图像,那......
  • 【django-vue】前端取消默认样式 main.js配置 后端主页模块接口 跨域问题详解 项目自
    目录回顾上节课回顾今日内容1前端全局样式和js配置1.1global.css1.2settings.js1.3main.js2后端主页模块接口三种开发模式模型父类BaseModel轮播图模型类代码轮播图接......
  • vue2响应式原理
    首先要知道vue2是2013年基于ES5开发出来的 我们常说的重渲染就是重新运行render函数vue2响应式原理简单来说就是vue官网上的这图片  通过Object.defineProper......
  • 直播软件源码,vue 自定义指令过滤特殊字符
    直播软件源码,vue自定义指令过滤特殊字符 /** *@tagsinput只可以輸入数字、字母、汉字 *@examplev-emoji */exportdefault(app)=>{ app.directive('emoji......
  • Apache Maven Assembly自定义打包插件的使用
    前言本文主要记录在SpringBoot项目中使用ApacheMavenAssembly插件进行打包的相关内容;官网说明:https://maven.apache.org/plugins/maven-assembly-plugin/概述是什......
  • 基于jeecgboot复杂sql查询的列表自定义列实现
        一般简单的sql列表实现,可以通过系统自带的在线开发里的online表单开发实现,但一些复杂的混合多表的实现,同时对需要查询出来的结果进行数据更新,这种复杂的数据列表......
  • day80-todolist组件自定义事件改进
    todolist-自定义组件通过自定义组件改进todolist案例,不全使用prop方式header组件<template><divclass="todo-header"><inputtype="text"placeholder="请输......
  • VUE2 键盘事件
    常规用法<inputtype="text"@keyup="showInfo"></input>methods:{showInfo(e){console.log(e.target.value)//这种情况会是输入框中实时输入什么,就......
  • KingbaseES V8R6 备份恢复案例 -- 自定义表空间指定目录恢复
    ​案例说明:KingbaseESV8R6在通过sys_rman执行物理备份恢复时,可以通过参数‘--kb1-path’,指定恢复的数据(data)目录,但如果原备份中包含自定义表空间时,需要建立表空间映射,再......
  • VUE2 滚动事件
    滚动条的滚动事件<ul@scroll="gundong"><li>1</li><li>2</li><li>3</li></ul>鼠标滚轮的滚动事件<ul@wheel="gundong"><li>1</li><li>2<......