<script>
//指令鉤子函數(shù):
/*
bind 只調(diào)用一次,指令第一次綁定到元素的時(shí)調(diào)用
inserted 被指令綁定指令的元素插入 父節(jié)點(diǎn)的時(shí)候調(diào)用
update 被綁定的元素模版只要發(fā)生變化,就會(huì)觸發(fā)(通過比較模板變化前后)
componentUpdated 被綁定元素所在模版完成一次更新周期時(shí)被觸發(fā)
unbind 指令被解除綁定的時(shí)候
*/
/*
定義指令回調(diào)函數(shù)(鉤子函數(shù)的幾個(gè)參數(shù)的意義)
第一個(gè)參數(shù):綁定指令的元素html
第二個(gè)參數(shù):對象的形式輸出,自定義指令的信息(指令名字,使用的名字,包括我們傳入的值,我們可以利用這個(gè)參數(shù),在鉤子函數(shù)中進(jìn)行相關(guān)操作),
第三個(gè)參數(shù):輸出綁定指令的元素的虛擬dom節(jié)點(diǎn)信息
*/
const selfcomponent={
template:`<div>
<p>自定義組件</p>
<input v-model="com"/>
<p v-my-dir="com">組件的內(nèi)容:跟隨變色</p>
</div>`,
//props:['color'],
data(){
return { com:'#ddd'}//給一個(gè)默認(rèn)值
},
directives:{
"myDir":{//指令的名字
bind:function(el,binding,nodeDom){
console.log(binding);
console.log("bind");
el.style="color:"+binding.value;
},
inserted:function(){
console.log("instered");
},
update:function(el,binding,nodeDom){//每次在input中輸入信息,都會(huì)觸發(fā)這個(gè)函數(shù)
console.log("update");
el.style="color:"+binding.value;
},
componentUpdated:function(el,bindging,nodeDom){
console.log("componented");
},
unbind:function(el,binding,nodeDom){
console.log("unbind");
}
}
}
};
var app =new Vue({
el:"#app",
data:{
color:'red',
},
methods:{
},
components:{
selfcomponent
}
});
</script>
vue自定義指令
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 前文 vue-reclick 傳送門 哈哈,好了!廣告打完了,開始進(jìn)入正題(等一下,聽說star有獎(jiǎng)哦)... ...
- (一)場景:例如百度的搜索框,當(dāng)我們輸入搜索內(nèi)容的時(shí)候會(huì)彈出搜索建議提示窗,然后當(dāng)我們點(diǎn)擊其他區(qū)域的時(shí)候這個(gè)彈窗就...
- Vue.directive (自定義指令) 使用方法,類似v-model等內(nèi)置指令,2.0的為了提升性能,所以在指...