vue中指令分為全局指令和局部指令
先來看全局自定義指令:
第一個參數是指令的名字,第二個參數可以是函數也可以是對象,先來看函數:

函數中接收三個參數:
el在這里是input元素
bindings里是一些綁定信息:
其中expression是指綁定的變量名字,這里是content
name是指令名字
value是綁定數據的值,上面content為空,所以目前value為空
v-slice上還可以寫修飾符


還可以傳參:


vnode虛擬節點:

vnode中contex是vue實例,其中的content是vue中的content值,即通過vnode.context拿到vue實例
小demo:規定input框中只能輸入5位


再利用對象的形式實現:

bind + update 等於之前的函數
第三個對象:(不常用)

完善一下:在這個demo中用到兩個指令,v-slice和v-model ,不太合適,所以要v-slice自己實現雙向數據綁定:

此功能實現了,但是當data中content值被提前設置后,出現此情況


所以取value值時應先對其進行截取


又發現content值很長

截取想要是長度,可根據
v-slice:9.number這個屬性
這里限制9位數
在控制台更改content值:

發現input中的值沒變。要想同步更新,需寫在update中


增加功能:.number時不能有字母出現

update中也要做處理

局部指令:

