須要對普通 DOM 元素進行底層操做,這時候就會用到自定義指令vue
除了 el 以外,其它參數都應該是隻讀的,切勿進行修改node
<div v-if="show" v-my-directive:arguments.modification="1+1" class="focus">
v-mydirective:[argument]="value"
argument能夠是動態變化的,而且在鉤子裏面實時更新的express
update 和 componentUpdateddom
不一樣點:函數
場景:點擊事件,div的內容追加 !;this
update(el, binding,vnode,oldVnode){ console.log(el.innerHTML); // <div>!</div> } componentUpdated(el, binding,vnode,oldVnode){ console.log(el.innerHTML); // //<div>!!</div> } // 注意: 區別是div裏面的!數量
bind 和 insertedcode
不一樣點:component
bind: function (el) { console.log(el.parentNode) // null console.log('bind') }, inserted: function (el) { console.log(el.parentNode) // <div class="directive-box">...</div> console.log('inserted') }
1.自定義指令的鉤子裏面沒有vue實例,this指向undefined;