<button @click="$router.push('/login')" v-botton>directive</button> export default { name: "directive", directives: { botton: { bind: function (el,binding,vnode) { //dom樹繪制前調用 el為當前節點,binding為對象,很少用, vnode vue對象 }, inserted: function (el,binding,vnode) { //繪制后 父節點存在時 }, unbind: function (el,binding,vnode) { //銷毀時 }, componentUpdated:function(el,binding,vnode){ //組件更新后的狀態 }, update:function(el,binding,vnode){ //組件更新前的狀態 } }, }
全局注冊 在main.js
Vue.directive('directive-span',{ bind:function(el){ console.log(el) el.style.color='red' }, inserted:function(el){ console.log(el,'inserted') setTimeout(()=>{ el.style.color='blue' },2000) } })