詳解Vue.js自定義tipOnce指令用法實(shí)例
vuejs自定義指令是用來操作DOM的。盡管Vue推崇數(shù)據(jù)驅(qū)動(dòng)視圖的理念,但并非所有情況都適合數(shù)據(jù)驅(qū)動(dòng)。自定義指令就是一種有效的補(bǔ)充和擴(kuò)展,不僅可用于定義任何的DOM操作,并且是可復(fù)用的。
最近碰到一種業(yè)務(wù)場景,業(yè)務(wù)場景如圖:

有個(gè)操作提示點(diǎn)擊可以顯示,足夠了吧?如圖:

不夠!好吧,產(chǎn)品說要求自動(dòng)淡出提示!
后臺(tái)操作復(fù)雜需要有個(gè)明顯提示給業(yè)務(wù)人員更好地操作,而且這種提示,只需要一種提示就足夠。于是我就想到了自己實(shí)現(xiàn)自定義指令。
整個(gè)vuejs場景是利用了構(gòu)建模式開發(fā),在我的main.js代碼是這樣魯?shù)模?/p>
let obj = new Vue({
router,
store,
render: h => h(App)
}).$mount('#app-box');
//注冊一個(gè)全局自定義指令 `v-tipOnce`
Vue.directive('tipOnce', {
bind: function (el,binding) {
console.log(el,binding);
obj.$message({
type: 'info',
message: binding.value
});
}
})
通過directive注冊v-tipOnce 全局指令,通過指令的 bind鉤子函數(shù)保證 只調(diào)用一次,指令第一次綁到元素時(shí)調(diào)用,在這里可以進(jìn)行一次性的初始化設(shè)置。那具體在指令里面做什么呢? 我無非就是想做個(gè)提示語一次性展示出來。于是想到了Elementui里面的$.message,于是直接用了 obj做個(gè)轉(zhuǎn)接實(shí)例,不想另外寫提示語 dom創(chuàng)建了。我們可以嘗試打印 el,和bingding是什么,其中el是dom實(shí)例,至于binding看下面代碼的用法傳的參數(shù)就知道。
好了,我們在單頁面組件用上v-tipOnce指令吧。代碼如下:
<el-row>
<el-col :span="24">
<div>
<el-collapse>
<el-collapse-item>
<template slot="title">
<div class="danger"> <i class="header-icon el-icon-search"></i> 操作提示 Operation Tips </div>
</template>
<div class="danger" v-tipOnce="'展示商品:必須選擇對應(yīng)的展示位置,才知道你所對應(yīng)的業(yè)務(wù)類型(B端還是C端?),展示商品會(huì)根據(jù)展示位置顯示出對應(yīng)的商品數(shù)據(jù);'">展示商品:必須選擇對應(yīng)的展示位置,才知道你所對應(yīng)的業(yè)務(wù)類型(B端還是C端?),展示商品會(huì)根據(jù)展示位置顯示出對應(yīng)的商品數(shù)據(jù);</div>
</el-collapse-item>
</el-collapse>
</div>
</el-col>
</el-row>
使用效果如下:

指令就那么簡單,可以根據(jù)你自己的思想甚至集成第三方插件使用,用出你想要的效果。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue使用vm.$set()解決對象新增屬性不能響應(yīng)的問題
這篇文章主要介紹了Vue使用vm.$set()解決對象新增屬性不能響應(yīng)的問題,為了解決這個(gè)問題,Vue提供了一個(gè)特殊的方法vm.$set(object, propertyName, value),也可以使用全局的Vue.set(object, propertyName, value)方法,需要的朋友可以參考下2023-05-05
vue中uni-app 實(shí)現(xiàn)小程序登錄注冊功能
這篇文章主要介紹了uni-app 實(shí)現(xiàn)小程序登錄注冊功能,文中給大家介紹了實(shí)現(xiàn)思路,以及vuex和本地緩存的區(qū)別,需要的朋友可以參考下2019-10-10
vue-resource post數(shù)據(jù)時(shí)碰到Django csrf問題的解決
這篇文章主要介紹了vue-resource post數(shù)據(jù)時(shí)碰到Django csrf問題的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
IOS上微信小程序密碼框光標(biāo)離開提示存儲(chǔ)密碼的完美解決方案
ios密碼框輸入密碼光標(biāo)離開之后會(huì)提示存儲(chǔ)密碼的彈窗,關(guān)于這樣的問題怎么解決呢,下面給大家分享IOS上微信小程序密碼框光標(biāo)離開提示存儲(chǔ)密碼的完美解決方案,感興趣的朋友一起看看吧2024-07-07

