Vue.js自定義指令的用法與實(shí)例解析
市面上大多數(shù)關(guān)于Vue.js自定義指令的文章都在講語(yǔ)法,很少講實(shí)際的應(yīng)用場(chǎng)景和用例,以致于即便明白了怎么寫(xiě),也不知道怎么用。本文不講語(yǔ)法,就講自定義指令的用法。
自定義指令是用來(lái)操作DOM的。盡管Vue推崇數(shù)據(jù)驅(qū)動(dòng)視圖的理念,但并非所有情況都適合數(shù)據(jù)驅(qū)動(dòng)。自定義指令就是一種有效的補(bǔ)充和擴(kuò)展,不僅可用于定義任何的DOM操作,并且是可復(fù)用的。
比如谷歌圖片的加載做得非常優(yōu)雅,在圖片未完成加載前,用隨機(jī)的背景色占位,圖片加載完成后才直接渲染出來(lái)。用自定義指令可以非常方便的實(shí)現(xiàn)這個(gè)功能。


效果:

自定義指令的第二用處是用于集成第三方插件。我們知道任何軟件開(kāi)發(fā)領(lǐng)域都可以分為四層:底層是原生的API,上層是通用框架,再上層是通用組件,最上層才是具體的業(yè)務(wù)代碼。一個(gè)通用框架,必須搭配一套完整的通用組件,才能真正奠定其江湖地位。
在前端開(kāi)發(fā)領(lǐng)域,以前的通用框架是jQuery,jQuery以及基于jQuery構(gòu)建的通用組件形成了一個(gè)龐大的生產(chǎn)系統(tǒng)?,F(xiàn)在的通用框架是Angular、React和Vue,每個(gè)框架都需要基于自身構(gòu)建新的組件庫(kù)。自定義指令好就好在:原先的那些通用組件,無(wú)論是純js的也好,基于jQuery的也好,都可以拿來(lái)主義直接吸收,而不需要改造或重構(gòu)。
比如寫(xiě)文檔通常會(huì)用到highlight.js,我們可以直接將其封裝為一個(gè)自定義指令,這樣highlight.js就變成了Vue的一個(gè)新功能。


效果:

但凡遇到第三方插件如何與Vue.js集成的問(wèn)題,都可以嘗試用自定義指令實(shí)現(xiàn)。
以上所述是小編給大家介紹的Vue.js自定義指令的用法與實(shí)例解析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
vue前端頁(yè)面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)
這篇文章主要介紹了vue前端頁(yè)面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
詳解vue-cli + webpack 多頁(yè)面實(shí)例配置優(yōu)化方法
本篇文章主要介紹了詳解vue-cli + webpack 多頁(yè)面實(shí)例配置優(yōu)化方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
基于vue實(shí)現(xiàn)一個(gè)禪道主頁(yè)拖拽效果
最近在做一個(gè)基于vue的后臺(tái)管理項(xiàng)目。接下來(lái)通過(guò)本文給大家分析一款基于vue做一個(gè)禪道主頁(yè)拖拽效果,需要的朋友可以參考下2019-05-05
VUE使用axios調(diào)用后臺(tái)API接口的方法
這篇文章主要介紹了VUE使用axios調(diào)用后臺(tái)API接口的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08
Vue-cli創(chuàng)建項(xiàng)目從單頁(yè)面到多頁(yè)面的方法
本篇文章主要介紹了Vue-cli創(chuàng)建項(xiàng)目從單頁(yè)面到多頁(yè)面的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
解決vite項(xiàng)目Uncaught Syntaxerror:Unexpected token>vue項(xiàng)
這篇文章主要介紹了解決vite項(xiàng)目Uncaught Syntaxerror:Unexpected token>vue項(xiàng)目上線白屏問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03

