詳解Vue.js自定義tipOnce指令用法實(shí)例
vuejs自定義指令是用來(lái)操作DOM的。盡管Vue推崇數(shù)據(jù)驅(qū)動(dòng)視圖的理念,但并非所有情況都適合數(shù)據(jù)驅(qū)動(dòng)。自定義指令就是一種有效的補(bǔ)充和擴(kuò)展,不僅可用于定義任何的DOM操作,并且是可復(fù)用的。
最近碰到一種業(yè)務(wù)場(chǎng)景,業(yè)務(wù)場(chǎng)景如圖:
有個(gè)操作提示點(diǎn)擊可以顯示,足夠了吧?如圖:
不夠!好吧,產(chǎn)品說(shuō)要求自動(dòng)淡出提示!
后臺(tái)操作復(fù)雜需要有個(gè)明顯提示給業(yè)務(wù)人員更好地操作,而且這種提示,只需要一種提示就足夠。于是我就想到了自己實(shí)現(xiàn)自定義指令。
整個(gè)vuejs場(chǎng)景是利用了構(gòu)建模式開(kāi)發(fā),在我的main.js代碼是這樣魯?shù)模?/p>
let obj = new Vue({ router, store, render: h => h(App) }).$mount('#app-box'); //注冊(cè)一個(gè)全局自定義指令 `v-tipOnce` Vue.directive('tipOnce', { bind: function (el,binding) { console.log(el,binding); obj.$message({ type: 'info', message: binding.value }); } })
通過(guò)directive注冊(cè)v-tipOnce 全局指令,通過(guò)指令的 bind鉤子函數(shù)保證 只調(diào)用一次,指令第一次綁到元素時(shí)調(diào)用,在這里可以進(jìn)行一次性的初始化設(shè)置。那具體在指令里面做什么呢? 我無(wú)非就是想做個(gè)提示語(yǔ)一次性展示出來(lái)。于是想到了Elementui里面的$.message,于是直接用了 obj做個(gè)轉(zhuǎn)接實(shí)例,不想另外寫(xiě)提示語(yǔ) dom創(chuàng)建了。我們可以嘗試打印 el,和bingding是什么,其中el是dom實(shí)例,至于binding看下面代碼的用法傳的參數(shù)就知道。
好了,我們?cè)趩雾?yè)面組件用上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="'展示商品:必須選擇對(duì)應(yīng)的展示位置,才知道你所對(duì)應(yīng)的業(yè)務(wù)類型(B端還是C端?),展示商品會(huì)根據(jù)展示位置顯示出對(duì)應(yīng)的商品數(shù)據(jù);'">展示商品:必須選擇對(duì)應(yīng)的展示位置,才知道你所對(duì)應(yīng)的業(yè)務(wù)類型(B端還是C端?),展示商品會(huì)根據(jù)展示位置顯示出對(duì)應(yīng)的商品數(shù)據(jù);</div> </el-collapse-item> </el-collapse> </div> </el-col> </el-row>
使用效果如下:
指令就那么簡(jiǎn)單,可以根據(jù)你自己的思想甚至集成第三方插件使用,用出你想要的效果。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Vue 多級(jí)組件透?jìng)餍路椒╬rovide/inject
這篇文章主要介紹了詳解Vue 多級(jí)組件透?jìng)餍路椒╬rovide/inject,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05vue如何導(dǎo)出文件流獲取附件名稱并下載(在response.headers里解析filename導(dǎo)出)
這篇文章主要介紹了vue如何導(dǎo)出文件流獲取附件名稱并下載(在response.headers里解析filename導(dǎo)出),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07element-ui中this.$confirm提示文字中部分有顏色自定義方法
this.$confirm是一個(gè)Vue.js中的彈窗組件,其樣式可以通過(guò)CSS進(jìn)行自定義,下面這篇文章主要給大家介紹了關(guān)于element-ui中this.$confirm提示文字中部分有顏色的自定義方法,需要的朋友可以參考下2024-02-02vue新手入門(mén)出現(xiàn)function () { [native code]&nbs
這篇文章主要介紹了vue新手入門(mén)出現(xiàn)function () { [native code] }錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue-create創(chuàng)建VUE3項(xiàng)目詳細(xì)圖文教程
create-vue是Vue官方新的腳手架工具,底層切換到了vite(下一代前端工具鏈),為開(kāi)發(fā)提供極速響應(yīng),下面這篇文章主要給大家介紹了關(guān)于vue-create創(chuàng)建VUE3項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2024-03-03