自定义指令

简介:
<body>
<div id = "app" >
<!-- 自定义的指令在使用时需添加v-前缀 -->
<div v-drag = "123" id = "box" > helloworld </div>
<p v-drag > 段落 </p>
</div>
</body>
<script src = "vue.js" ></script>
<script>

// Vue.directive,用于全局注册一个指令,第一个参数是指令名字,第二个参数是指令的配置对象
Vue . directive ( "drag" ,{
// 指令配置对象中inserted方法,当指令被插入到元素中时指令,一般用于设置指令的具体功能。
// inserted函数中,第一个参数是指令所在的元素对象,第二个参数是指令信息。
inserted ( el , dir ){
// console.log(el);

el . style . position = "relative" ;
el . style . left = "0px" ;
el . style . top = "0px" ;

// console.log("指令被识别了");

function mv ( e ){
let offX = e . pageX - prevX ;
let offY = e . pageY - prevY ;

el . style . left = parseInt ( el . style . left ) + offX + "px" ;
el . style . top = parseInt ( el . style . top ) + offY + "px" ;

prevX = e . pageX ;
prevY = e . pageY ;
}
let prevX = 0 ;
let prevY = 0 ;

el . addEventListener ( "mousedown" , function ( e ){
prevX = e . pageX ;
prevY = e . pageY ;
document . addEventListener ( "mousemove" , mv )
})

document . addEventListener ( "mouseup" , function (){
document . removeEventListener ( "mousemove" , mv );
});


}
})

new Vue ({
el: "#app" ,
data: {

}
})
< /script>
相关文章
|
7月前
|
JavaScript
vue3自定义指令
vue3自定义指令
|
7月前
|
JavaScript
Vue3 自定义指令
Vue3 自定义指令
|
7月前
|
JavaScript
vue3中使用全局自定义指令和组件自定义指令
全局自定义指令和组件自定义指令的区别,除了写法不同和作用不同,其他的包括生命周期的使用方法都是一致的,全局自定义指令在main.ts中注册后整个项目都可以使用,而组件自定义指令只能在组件中注册,并且在组件中使用。
237 1
|
7月前
|
JavaScript API 开发者
自定义指令:创建和使用Vue自定义指令
【4月更文挑战第24天】Vue.js允许开发者创建自定义指令以适应特定需求,增强代码复用和可维护性。通过`Vue.directive`全局注册或组件内`directives`局部注册,定义指令行为。以`highlight`指令为例,展示`bind`和`click`钩子改变元素背景色。自定义指令包含多个生命周期钩子,可处理参数,提供灵活性。它们扩展HTML功能,封装复杂逻辑,提升代码质量,是Vue开发中的强大工具。
58 3
|
7月前
|
JavaScript 前端开发 开发者
Vue的自定义指令:创建自定义指令的技术详解
【4月更文挑战第24天】Vue.js 允许开发者创建自定义指令以扩展其功能。自定义指令提供灵活性,但需根据需求和最佳实践谨慎使用。
|
7月前
|
JavaScript
Vue自定义指令的三个方法
Vue自定义指令的三个方法
44 0
|
7月前
|
JavaScript 搜索推荐 前端开发
vue怎样自定义指令?
vue怎样自定义指令?
|
7月前
|
JavaScript 前端开发 API
Vue 3.0 自定义指令
Vue 3.0 自定义指令
47 0
|
JavaScript
【Vue3】自定义指令
【Vue3】自定义指令
77 0