首页 > 其他分享 >vue(vue.js)—自定义指令

vue(vue.js)—自定义指令

时间:2024-10-20 20:21:55浏览次数:7  
标签:vue 自定义 绑定 binding element 指令 js

原文链接:vue(vue.js)—自定义指令 – 每天进步一点点

vue中的自定义指令就是把原生的dom一些操作进行封装。

1.函数形式

需求:我们定义一个v-mult指令,和v-text类似,但是会将绑定的值翻倍。

在vue中,用directives自定义函数,比如下面这样:

<!DOCTYPE html> <html lang="en">   <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>   </head>   <body>   <div id="root"> <div>当前的n值是:<span v-text="n"></span></div> <div>翻倍后的n值是:<span v-mult="n"></span></div> <button @click="n++">点我n+1</button> </div> <script type="text/javascript"> new Vue({ el: '#root', data:{ n:1, }, // 自定义指令 directives:{ //函数形式 mult(element,binding){ console.log(element,binding) //element 是真实的dom元素,bingding是绑定对象 element.innerText = binding.value *2 } } }) </script> </body>   </html>

这个地方需要说明的是,打印的element和bingding

element是原生的dom元素,而bingding是绑定对象。bingding中比较重要的就是expressionvalue

上面代码中的

element.innerText = binding.value *2

的含义是把绑定的值乘以2,然后赋值给当前绑定的dom元素的值。

程序运行后如下:

当指令所在模板被重新解析时,所绑定的自定义指令就会被调用。

2.对象式

需求:定义一个v-fbind指令,和v-bind功能类似,但是可以让其所绑定的input元素默认获取焦点。

参考代码:

<!DOCTYPE html> <html lang="en">   <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>   </head>   <body>   <div id="root"> <div>当前的n值是:<span v-text="n"></span></div> <div>翻倍后的n值是:<span v-mult="n"></span></div> <button @click="n++">点我n+1</button>     <input type="text" v-fbind:value="n"> </div> <script type="text/javascript"> new Vue({ el: '#root', data:{ n:1, }, // 自定义指令 directives:{ //函数形式 mult(element,binding){ // console.log("element=",element) // console.log("bingding=",binding) //element 是真实的dom元素,bingding是绑定对象 element.innerText = binding.value *2 //什么是时候会被调用,指令所在的模板被重新解析时 }, //对象形式 fbind:{ //当指令与元素成功绑定时,执行。 bind(element,binding){ element.value= binding.value }, //指令所在元素被插入元素时,调用 inserted(element,binding){ console.log("inserted执行") element.focus() }, //指令所在的模板被重新解析时,调用 update(element,binding){ console.log("update执行") element.value= binding.value //element.focus() //更新时,也获取焦点 }, } } }) </script> </body>   </html>

效果图:

对象这种写法里面有三个固定函数,bind、inserted、update函数。

bind函数表示当指令与元素成功绑定时执行。

inserted函数表示指令所在元素被插入元素时,调用。

update函数指令所在的模板被重新解析时,调用。

标签:vue,自定义,绑定,binding,element,指令,js
From: https://www.cnblogs.com/longkui-site/p/18487816

相关文章

  • SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句
    原文链接:SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句–每天进步一点点上一篇文章中简单介绍了springboot通过系统配置的方式配置日志:SpringBoot使用默认的日志logback(1)—系统配置这篇文章简单介绍一下日志的自定义配置。1.自定义配置springboot......
  • jsp辅导员考评管理系统09go2程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,通知信息,班级,活动记录,事项表格,活动信息,活动申请,期末成绩,综合素质开题报告内容一、研究背景随着高等教育的发展,辅导员的角色日益重要。他们不仅负......
  • jsp服装销售管理系统m651z--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,商品类型,服装商品,服装入库,服装出库开题报告内容一、课题背景随着服装行业的竞争加剧,销售数据的精准管理和分析成为企业提升竞争力的关键。为了满足服......
  • jsp服饰销售系统的设计与实现wyi1q(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,服饰类别,后台客服,服饰信息开题报告内容一、课题名称服饰销售系统设计与实现二、研究背景与意义随着电子商务的蓬勃发展,服饰行业对高效、智能的销售管......
  • jsp风景区管理系统dkkbe--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,景点信息,景点分类,门票订单,系统公告,旅游路线开题报告内容一、课题背景与意义随着旅游业的蓬勃发展,风景区作为重要的旅游资源,其管理效率和游客体验成为......
  • 基于node.js+vue基于Android的儿童成长管理APP(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着信息技术的飞速发展,移动应用在各个领域得到了广泛的应用。关于儿童成长管理方面的研究,现有研究主要以传统的纸质记录或单一功能的软件为主,专门针对......
  • 基于node.js+vue基于Android的早教机构服务系统设计与实现(开题+程序+论文)计算机毕业设
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着社会发展,早教越来越受到重视。在国内外,关于早教机构管理与服务方面已有诸多研究。国外早教机构在服务系统的信息化建设方面较为先进,多注重借助现代......
  • springboot+vue鞍师考研交流网站【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着高等教育的普及和就业竞争的加剧,越来越多的本科生选择继续深造,考研成为了他们提升学历、增强竞争力的重要途径。鞍山师范学院作为一所知名的教育机构,每年都有大量的学生投入到考研大军中。然而,考研过程中的信息获取、资料查找、经......
  • 【毕业设计】基于SpringBoot + Vue的工资信息管理系统
    一、项目背景随着信息技术的飞速发展,传统的工资管理方式已经无法满足现代企业对数据安全、效率和信息处理能力的需求。为了提高工资信息管理的效率和准确性,开发一套工资信息管理系统显得尤为重要。该系统通过信息化手段,能够有效管理员工工资、津贴、考勤记录等信息,为企业管理......
  • springboot+vue奥迪汽车信贷系统 【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着全球汽车市场的蓬勃发展,汽车信贷作为一种重要的金融工具,极大地促进了汽车销售与消费。奥迪汽车作为国际知名的豪华汽车品牌,其市场占有率和消费者群体日益扩大。在竞争激烈的市场环境中,提供高效、便捷的汽车信贷服务成为奥迪汽车吸......