使用vue的自定义指令来整合某个重复使用的底层操作

举个聚焦输入框的例子,如下:

当页面加载时,该元素将获得焦点 (注意:autofocus 在移动版 Safari 上不工作)。事实上,只要你在打开这个页面后还没点击过任何内容,这个输入框就应当还是处于聚焦状态。现在让我们用指令来实现这个功能:

// 在main.js中注册一个全局自定义指令 `v-focus`
Vue.directive('focus', {// 当被绑定的元素插入到 DOM 中时……inserted: function (el) {// 聚焦元素el.focus()}
})

如果想注册局部指令,组件中也接受一个 directives 的选项:

directives: {focus: {// 指令的定义inserted: function (el) {el.focus()}}
}

然后你可以在模板中任何元素上使用新的 v-focus property,如下:

<input v-focus>

另外一个例子:
全局a标签需要href参数来实现鼠标跳转路由,如果有很多标签的href的路由一样,参数不同,则可以使用自定义指令:

// bindling 中存的是a标签传来的值,可以是对象
Vue.directive('to-where', function(el, binding) {const id = Base64.encode(binding.value.id)el.href = '/xxx/xxx/xxx?id=' + id
})
<a v-to-where="{id: yourId}" /> // to-where就是指令的名称

另外,如果想禁止dom的原生属性,例如a标签跳转路由后会刷新页面,使用vue的prevent属性,在click中增加

<a v-to-where="{id: yourId}" @click.prvent="yourFunction" />

VUE使用自定义指令对普通 DOM 元素进行底层操作相关推荐

  1. Vue.js 自定义指令

    简介 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令.注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件.然而,有的情况下,你仍然需要对普通 D ...

  2. vue directives自定义指令的使用

    有的情况下,需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令. 自定义指令使用情景: 1.按钮级别权限的控制. 2.按钮的波纹动态效果. 3.一键copy的功能. 4.输入框自动聚焦. ...

  3. Vue的自定义指令以及Vue自定义指令的应用场景

    前言 一.Vue的自定义指令分为? vue中除了核心功能内置的指令外,也允许注册自定义指令.有的情况下,对普通DOM元素进行底层操作,这时候就会用到自定义指令. 自定义指令分为全局自定义指令和局部的自 ...

  4. Vue.js自定义指令的用法与实例

    市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vu ...

  5. VUE:自定义指令(directives )选项的用法

    自定义指令分为全局指令和局部指令.全局指令可在任意vue组件内生效,局部指令仅在注册了指令的组件内生效. 全局指令和局部指令写法几乎相同.全局指令是在main.js内使用Vue.directive注册 ...

  6. VUE通过自定义指令,只允许输入大写英文以及数字

    在写之前需要知道几个功能对象的作用: 首先输入框输入的情况有键盘输入和粘贴输入的情况 用到的组件有: input.onblur-onblur: 事件会在对象失去焦点时发生.Onblur 经常用于Jav ...

  7. js:Vue.js自定义指令实现scroll下滑滚动翻页

    Vue.js自定义指令实现scroll下滑滚动翻页 核心代码 import Vue from 'vue'// v-scroll Vue.directive('scroll', {bind(el, bi ...

  8. vue 项目自定义指令实现防抖

    自定义v-debounce指令实现click事件防抖 该指令绑定的方法暂不支持传递参数,如需要传参数可以参考另一篇博客,防抖组件的实现 工具uitls文件夹创建debounce.js文件 代码如下 i ...

  9. Selenium(2): DOM元素定位、操作

    DOM 元素定位 定位过程 WebDriver对象的findElement函数定义一个Web页面元素: findElements方法可以定位页面的多个元素: 使用WebElement对象来存储定位的元 ...

最新文章

  1. Nginx源代码分析 - 日志处理
  2. 2021年春季学期-信号与系统-第二次作业参考答案-第一小题
  3. 库克工资是普通员工201倍,纳德拉年薪三个亿,大公司贫富差距榜出炉
  4. Dubbo的终端操作方法
  5. matlab读取黑白图目标位置的坐标,matlab对图像处理——裁剪 获取灰度图 获取坐标点...
  6. python中的类装饰器应用场景_Python 自定义装饰器使用写法及示例代码
  7. 如何高效地判断奇数和偶数
  8. Hibernate——(3)主键生成策略持久化类的三种状态
  9. 【Java】开源工具 Hutool 不糊涂
  10. SAP License:生产订单无目标成本解决办法
  11. 简单的签到代码_签到功能,用 MySQL 还是 Redis ?
  12. 5个小众视频素材网站,你知道吗?
  13. SAP PI SLD RZ70 系统架构目录数据提供者 HTTP(S) 配置
  14. KVM多电脑切换器的KVM发展史
  15. Gmail SMTP问题解决汇总
  16. HDU 4394 BFS
  17. 网上书店(基于JavaWeb和Mysql)项目
  18. 微信小程序框架(四)-全面详解(学习总结---从入门到深化)
  19. 全景图的种类及opencv实现
  20. 硬件开源编程利器MyHDL简介

热门文章

  1. 用5分钟学Python,做签到脚本,再也不怕断签啦!
  2. 爬虫实践---豆瓣短评+词云分析
  3. Vue3电影中后台开发纪实(五):组件封装
  4. 工赋开发者社区 | 「新一代知识图谱关键技术」最新2022进展综述
  5. 计算机应用与科学感悟,计算机应用与科学专业的自我评价
  6. 回归爬虫,拥抱scrapysplash。抓facebook public post like、comment、share
  7. GDB调试利器-单步调试与查看变量
  8. sql中向下取整怎么取_Sql 获取向上取整、向下取整、四舍五入取整的实例
  9. HTTP 400 错误
  10. python 人数取整_避免PYTHON取整四舍六入五成双问题