vue3 寫乙個簡單的拖拽指令

2022-07-09 22:57:12 字數 1281 閱讀 6313

1. vue3 指令的最終api 

const mydirective =,

mounted() {},

beforeupdate() {},

updated() {},

beforeunmount() {}, //新

unmounted() {}

}

2. 基於物件導向寫的拖拽

1

class drap)

10init());

12this.el.onmousedown =(e)=>

1718}19

//樣式設定

20setelestyle(option)24}

2526

//按下ele

27onmousedown(e))

32this.x = e.clientx-this

.el.offsetleft;

33this.y= e.clienty-this

.el.offsettop;

34 document.onmousemove=(e)=>this

.onmousemove(e);

35 document.onmouseup = (e)=>this

.onmouseup(e)36}

37//

移動move

38onmousemove(e)else

if(x>document.documentelement.clientwidth-10)

46if(y<10-this

.el.clientheight)else

if(y>document.documentelement.clientheight-10)

51this.el.style.left = x+'px'

52this.el.style.top = y+'px'53}

54//

釋放55

onmouseup(e))

59this.el.setcapture&&this.el.setcapture() //

釋放全域性捕獲

6061

} 62 }

3. 將封裝好的拖拽整合在指令上

//

src/directive/drag.js

export const drag =)

}}

//

src/main.js

5. 在元件中用12

自己寫乙個jqery的拖拽外掛程式

說實話,jquery比原生的js好用多了,本來想用原生寫的,也寫出來的,僅僅是,感覺不像外掛程式,所以用jquery實現了一版。實現的功能 能夠指定拖拽的邊界,在拖拽過程中,能夠觸發幾個自己定義事件 先說明一下我寫的外掛程式的原則 1.常量分離出來,放在 zui.外掛程式中 2.外掛程式的主體執行函...

自己寫的乙個Vue

下面這裡是我自己寫的乙個小型的vue,原理就是proxy proxy天生沒有prototype,因此要加上,不然extends會報錯 proxy.prototype proxy.prototype object.prototype class myvue extends proxy super da...

如何寫乙個Vue自定義指令

vue除了核心功能缺省內置的指令 vue 也允許註冊自定義指令。自定義指令是用來操作dom的。儘管vue推崇資料驅動檢視的理念,但並非所有情況都適合資料驅動。自定義指令就是一種有效的補充和擴充套件,不僅可用於定義任何的dom操作,並且是可復用的。寫乙個自定義指令的兩種方式 全域性指令 通過 vue....