(鼠标拖拽dialog框小案例)

自定义指令:复用普通元素的底层DOM访问逻辑(能很好的使逻辑和视图分离)ps:可参考官网定义

1、新建js文件或者直接在组件中写也可以(一下是js文件)

export const dialgDrag = {directives: {drag: {// 指令的定义bind: function (el) {// 获取当前元素const oDiv = eloDiv.onmousedown = (e) => {// 算出鼠标相对元素的位置const disX = e.clientX - oDiv.offsetLeftconst disY = e.clientY - oDiv.offsetTop// console.log('disX', disX, 'disY', disY)document.onmousemove = (e) => {// 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置const left = e.clientX - disXconst top = e.clientY - disY// console.log('left', left, 'top', top, 'oDiv', oDiv)oDiv.style.left = left + 'px'oDiv.style.top = top + 'px'}document.onmouseup = () => {document.onmousemove = nulldocument.onmouseup = null}}},},},
}

2、组件中注册指令(分为全局注册或者局部注册)

a:全局注册,在main.js/.ts中引入导出模块指令(dialgDrag),并进行注册:app.directive('dialgDrag')

b:局部注册:

在组件中添加配置项:

directives:{dialgDrag}

3、DOM中使用指令

在需要用到指令的元素中添加v-指令名即可(v-drag)

<el-dialog :title="topTitles" class="addBooks" :visible.sync="dialogVisible" width="100%" v-drag></el-dialog>

如果使用的是vue3语法糖<script setup></script>,任何以v开头的驼峰命名的变量都可以被用作一个自定义的指令,然后可以直接在模板中使用,无需注册。

如:

const vFocus={ 逻辑代码段}

<input v-focus/>

directives 自定义指令相关推荐

  1. Vue API(directives) 自定义指令

    前言:除了vue的内置指令以外,我们可以定义自定义指令.内置指令表相见:https://www.cnblogs.com/ilovexiaoming/p/6840383.html 我们定义一个最简单的 ...

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

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

  3. 二,本地应用(v-text,v-html,v-on;v-show,v-if,*v-bind;v-for,v-model;v-cloak ;v-once; v-pre ;自定义 指令)

      经常使用                                     v-bind:v-for,v-model   二.本地应用 用vue的方式来开发常见的网页效果. (一).内容绑定 ...

  4. Vue自定义指令介绍

    [自定义指令灵魂三问] 是什么:是程序员在vue中自己定义的指令,用在标签上 为什么:为了获取标签,扩展额外的功能(vue自带的指令不能满足我们的需求时用) 怎么用:全局使用 和 局部使用 1.全局自 ...

  5. 【前端技巧】JS自定义指令 —— 无限滚动(改写el-table-infinite-scroll)

    @Author:Outman @Date:2023-03-08 JS自定义指令 -- 无限滚动(改写el-table-infinite-scroll) 自定义指令实现 // directives/in ...

  6. Vue基础复习(2)Vue2.X过渡、动画和自定义指令

    vue2.X过渡&动画和自定义指令 1. 过渡效果 2. 动画效果 3. Vue内置指令 4. 自定义指令 vue2.X过渡&动画和自定义指令 transition(过渡) anima ...

  7. Vue.js中的自定义指令directives

    除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令.自定义指令,需要声明钩子函数.注册自定义指令也分为注册全局自定义指令和注册局部自定义指令.两者用法相同, ...

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

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

  9. vue3的自定义指令directives

    一.什么是自定义指令 我们已经熟悉Vue内置的一系列指令 ,比如 v-model, v-show, v-if, v-for等等,自定义指令从命名上看主要区别于Vue自带的内置指令,我们可以创建自己想要 ...

最新文章

  1. RHEL7 yum安装配置LAMP(Apache+PHP+MySql)服务器
  2. 逻辑回归评分卡分数映射
  3. polymer 绑定html元素,使用在Polymer元素内的light dom中定义的模板
  4. 如何正确的使用单例模式
  5. 使用 javascript 标记高亮关键词
  6. ps读写ddr3里面的数据 zynq_Zynq:用PS控制DDR3内存读写
  7. CentOS安装Hadoop
  8. 【CV】如何使用Tensorflow提供的Object Detection API--4--开始训练模型
  9. 【Linux】mkdir命令
  10. 这份Java面试题,阿里P7的正确率都不到50%!!
  11. pppoe路由桥混合模式_192.168.1.1路由器怎么设置和登陆
  12. 基于词嵌入技术的微博博文情感分析系统设计实现
  13. 芯洲 DCDC SCT2433STER参数可以P2P替代TPS5430DDAR,3.8V-40V输入,3.5A,低静态电流同步降压DCDC转换器
  14. 路由器UPnP功能具体作用,有什么坏处,
  15. 计算机网络实训报告总结,学习计算机网络的实训总结
  16. 区块链游戏平台Gala Games能否重振链游?
  17. 简单大方的java自我介绍,简单大方的自我介绍
  18. Web前端_配合swiper滑动插件实现同比例双指缩放图片
  19. 拍手数据集_我如何(重新)建立中等拍手效果-以及从实验中得到的结果。
  20. 《Android入门之旅》

热门文章

  1. Pranava Pra 使用教程:
  2. 中国IT工作者35岁后的发展出路调查报告(3)
  3. java字符串进行中文、特殊字符编码
  4. python制作英语字典_Python爬虫之自制英汉字典
  5. matlab如何在极坐标绘图,Matlab在极坐标中绘图
  6. LeetCode 1646. 获取生成数组中的最大值 Python
  7. 抖音小程序创建广告位
  8. fatal: Authentication failed
  9. Improving Entity Linking by Modeling Latent Relations between Mentions
  10. [KDL库学习]KDL库安装与使用