vue directive定義全局和局部指令及指令簡寫
directive定義全局和局部指令以及指令簡寫
1.使用Vue.directive()定義一個全局指令 Vue.directive('指令名稱',{對象})
2.參數(shù)一:指令的名稱,定義時指令前面不需要寫v-
3.參數(shù)二:是一個對象,該對象中有相關(guān)的操作函數(shù)
4.在調(diào)用的時候必須寫v-
5.自定義指令中的常用的3個鉤子函數(shù):
5.1bind:
1.指令綁定到元素上回立刻執(zhí)行bind函數(shù),只執(zhí)行一次
2.每個函數(shù)中第一個參數(shù)永遠(yuǎn)是el,表示綁定指令的元素,el參數(shù)是原生js對象
3.通過el.focus()是無法獲取焦點的,因為只有插入DOM后才生效
5.2inserted:
1.inserted表示一個元素,插入到DOM中會執(zhí)行inserted函數(shù),只觸發(fā)一次
5.3updated:
1.當(dāng)VNode更新的時候會執(zhí)行updated,可以觸發(fā)多次
6.定義一個局部指令
測試案例步驟:
1.首先需要在html中創(chuàng)建一個盒子
2.接著需要通過實例化Vue并且通過el將盒子所對應(yīng)的id進行綁定
3.在盒子里面所對應(yīng)的要自定義的標(biāo)簽上通過v-xxx標(biāo)注
局部定義的格式:
directives:{
'xxx':{
bind:function(el,binding){
el.style.xxx = binding.value
}
}
}
7.指令函數(shù)的簡寫
function等同于將代碼寫入bind和update里
directive:{
'xxx':function(el,binding){
el.style.xxx = binding.value
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/vue-2.4.0.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="box">
<p v-fontsize="'20px'" v-color="'green'">{{msg}}<input type="text" v-focus /></p>
<p v-color="'red'">{{msg}}<input type="text" v-color="'red'" /></p>
</div>
</body>
<script type="text/javascript">
//使用Vue.directive()定義一個全局指令
//1.參數(shù)一:指令的名稱,定義時指令前面不需要寫v-
//2.參數(shù)二:是一個對象,該對象中有相關(guān)的操作函數(shù)
//3.在調(diào)用的時候必須寫v-
Vue.directive('focus',{
//1.指令綁定到元素上回立刻執(zhí)行bind函數(shù),只執(zhí)行一次
//2.每個函數(shù)中第一個參數(shù)永遠(yuǎn)是el,表示綁定指令的元素,el參數(shù)是原生js對象
//3.通過el.focus()是無法獲取焦點的,因為只有插入DOM后才生效
bind:function(el){
//el.focus()
},
//inserted表示一個元素,插入到DOM中會執(zhí)行inserted函數(shù),只觸發(fā)一次
inserted:function(el){
el.focus()
},
//當(dāng)VNode更新的時候會執(zhí)行updated,可以觸發(fā)多次
updated:function(el){
//el.focus()
}
})
//自定義一個設(shè)置字體顏色指令
Vue.directive('color',{
//只要通過指令綁定給了元素,元素一定會顯示在頁面上
//一般情況和樣式有關(guān)的使用bind函數(shù)
bind:function(el,binding){ //通過binding來傳遞值
el.style.color = binding.value
}
})
//實例化Vue
var vm = new Vue({
el:'#box',
data:{
msg:'測試:'
},
//定義一個局部指令
directives:{ //自定義一個局部指令
'color':{ //設(shè)置字體顏色
bind:function(el,binding){
el.style.color = binding.value
}
},
//指令函數(shù)的簡寫:
//function等同于將代碼寫入bind和update里
'fontsize':function(el,binding){ //設(shè)置字體大小
el.style.fontSize = parseInt(binding.value) + 'px'
}
}
})
</script>
</html>
總結(jié)
以上所述是小編給大家介紹的vue directive定義全局和局部指令及指令簡寫,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Vue3實現(xiàn)全局loading指令的示例詳解
- vue全局注冊自定義指令防抖解析
- vue全局自定義指令和局部自定義指令的使用
- Vue全局自定義指令Modal拖拽的實踐
- vue全局自定義指令-元素拖拽的實現(xiàn)代碼
- 對Vue2 自定義全局指令Vue.directive和指令的生命周期介紹
- vue3的自定義指令directives實現(xiàn)
- vue 自定義指令directives及其常用鉤子函數(shù)說明
- vue?filters和directives訪問this的問題詳解
- vue通過指令(directives)實現(xiàn)點擊空白處收起下拉框
- 詳解vue + vuex + directives實現(xiàn)權(quán)限按鈕的思路
- vue全局指令文件?directives詳解
相關(guān)文章
element-ui中el-form-item內(nèi)的el-select該如何自適應(yīng)寬度
自從用了element-ui,確實好用,該有的組件都有,但是組件間的樣式都固定好了,下面這篇文章主要給大家介紹了關(guān)于element-ui中el-form-item內(nèi)的el-select該如何自適應(yīng)寬度的相關(guān)資料,需要的朋友可以參考下2022-11-11
解決ant Design Search無法輸入內(nèi)容的問題
這篇文章主要介紹了解決ant Design Search無法輸入內(nèi)容的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Vue中.vue文件比main.js先執(zhí)行的問題及解決
這篇文章主要介紹了Vue中.vue文件比main.js先執(zhí)行的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
vue-cli history模式實現(xiàn)tomcat部署報404的解決方式
這篇文章主要介紹了vue-cli history模式實現(xiàn)tomcat部署報404的解決方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

