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

Vue自定义指令

时间:2023-11-12 11:04:34浏览次数:28  
标签:el Vue 自定义 color binding 指令 inserted

自定义指令

根据自定义的指令,可以封装一些dom操作,扩展额外的功能

  • 全局注册-语法
    全局注册是在min.js文件中去定义的
Vue.directive('指令名',{
    // inserted: 钩子是一个自定义指令的生命周期钩子函数之一。它会在被绑定的元素插入到父节点时调用。
    "inserted"(el){
        // 可以对el标签,扩展额外的功能
        el.focus();//聚焦
    }
})

image

实现效果:自动聚焦

  • 局部注册-语法
    局部注册在组件中去定义
directives{
    '指令名':{
    // inserted: 钩子是一个自定义指令的生命周期钩子函数之一。它会在被绑定的元素插入到父节点时调用。
    inserted(el){
        // 可以对el标签,扩展额外的功能
        el.focus();//聚焦
    }
  }
}

image

  • 使用
    <input v-指令名 type ='text'/>
    只要使用的标签被绑上了自定义的指令,那么由于inserted的特殊性,就会去触发相应的操作

场景需求

需求:实现一个color指令,传入不同的颜色,给标签设置文字颜色

  • 语法:在绑定指令时,可以通过“等号”的形式为指令绑定 具体的参数值
    <h1 v-color="color">自定义指令</h1>
    其中 v-color 是我们自定义的指令, color 是参数
  • 通过binding.value可以拿到指令值,指令值修改会触发update函数
 directives: {
    color: {
      // el是markup中指令所在的元素,binding是 包含指令信息的对象
      inserted(el, binding) {
        console.log(binding.value);
        el.style.color = binding.color;
      },
      // 会在包含指令的元素的绑定值更新时触发。具体来说,当指令所绑定的值发生改变时,update 钩子会被调用。
      update(el, binding) {
        console.log(binding.value);
        el.style.color = binding.color;
      },
    },
}

完整演示:
image

image

标签:el,Vue,自定义,color,binding,指令,inserted
From: https://www.cnblogs.com/zgf123/p/17826858.html

相关文章

  • vue项目配置国际化
    1、安装vue-i18n+js-cookie插件npminstallvue-i18n-Snpminstalljs-cookie--save即在package.json中dependencies节点添加vue-i18n"vue-i18n":"7.3.2",2、配置多语言文件src目录下创建lang目录,存放国际化文件此处包含三个文件,分别是index.jszh.jsen.js//index.jsim......
  • Vue中的异步更新和 $nextTick
    场景引入需求:当用户点击编辑按钮后,显示一个弹窗,该弹窗有一个文本框,使得文本框自动聚焦看似代码如下:this.isShowEdit=true;//显示输入框this.$refs.inp.focus();//获取焦点代码看似没有问题,显示文本框后,让文本框聚焦,但是在vue中却不能实现,这是由于vue是异步更新Dom的t......
  • vue2.0,把vform666、workFlow开源组件集成到vue-admin-template框架上心得体会
    以上三个都是vue2版本的开源项目,有的已经有vue3版本了,我把他们集成到一起,是出于练习的目的,也是消磨时间。vue-admin-template是一个很基础简洁的后台管理系统框架;vform666是可以用作表单低代码开发的组件项目;workFlow是模仿钉钉的工作流的组件项目,这三个项目在gitee上都能搜索到,......
  • Vue中的ref和$refs
    ref和$refs作用:利用ref和$refs可以用于获取dom元素,或组件实例特点:查找范围->当前组件内(更精确稳定)注意:在操作ref获取dom元素时,最快也得是mounted时期获取,也就是页面渲染之后使用步骤:目标标签-添加ref属性<divref="chartRef">我是div标签</div>通过this.$re......
  • Vue2中的父子通信
    父子通信流程图:父组件通过props将数据传递给子组件子组件利用$emit通知父组件修改更新父组件传递子组件注意点但是需要注意的是,通过props传递的数据是只读状态的,也就是说,我们不能去修改这个值。注意:props是只读的,如果直接对props中的数据进行修改,Vue就会发出警告。如果......
  • SpringSecurity successHandler方法使用自定义Handler登录成功,302问题
    一开始我自定义了成功和失败两个Handler,在进行调试的时候发现失败的没有问题,但是登录成功的话走的是某人的重定向而不是我自定义的protectedvoidconfigure(HttpSecurityhttp)throwsException{http.csrf().disable().headers().frameOptions().disable()......
  • vue 项目改为微应用后,原本的项目地址打不开为什么?
    当将Vue项目改为微应用之后,需要进行一些配置才能正常运行。首先,确保微应用项目的依赖中已经添加了qiankun,并在主应用的main.js中进行了相关配置。可以参考qiankun官方文档来配置主应用。在进行部署时,需要注意以下几点:跨域配置:微应用可能会存在跨域请求的问题。在部署时,需确保主应用......
  • 记录--啊?Vue是有三种路由模式的?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助众所周知,vue路由模式常见的有history和hash模式,但其实还有一种方式-abstract模式(了解一哈~)别急,本文我们将重点逐步了解:路由+几种路由模式+使用场景+思考+freestyle路由概念路由的本质就是一种对......
  • 安卓自定义控件快速了解
    自定义控件,自定义视图方式,假设我们写好一个视图,就以这个视图封装起来做成一个组件,这个自定义的控件就想当方便以后相同功能时直接调用这个核心分为三步,第一步编写一个类继一个视图,这个继承的视图比如​RelativeLayout​,除了​RelativeLayout​以外,Android还提供了其他一些常用......
  • 11 11 vue3代码优化
     使用axios发送异步请求是这种格式,现在异步请求都封装到api中。说法如下:接口调用的js代码一般都会封装到js文件中,并一函数的形式暴露给外部,例如: 这张图片包括了没有参数和有参数的两种情况 然后在组件中的script中调用函数就行,但这样不行,好像跟什么同步异步有关,反正这样......