區(qū)別:組件一般是指一個獨立實體,組件之間的關(guān)系通常都是樹狀;而指令是一種Decorator模式,用以改寫某個組件的默認(rèn)行為,或者增強使其獲得額外功能,一般來說可以在同一個組件上疊加若干個指令,使其獲得多種功能。
本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6版,DELL G3電腦。
vuejs中指令和組件的區(qū)別
組件一般是指一個獨立實體,組件之間的關(guān)系通常都是樹狀。
指令是一種Decorator模式,用以改寫某個組件的默認(rèn)行為,或者增強使其獲得額外功能,一般來說可以在同一個組件上疊加若干個指令,使其獲得多種功能。一些指令會依賴其所應(yīng)用的組件實現(xiàn)某些接口,比如vue中的transition指令會依賴組件的enter, leave等一堆鉤子。
當(dāng)然vue里也有一些比較猛的指令比如v-if, v-for,它們甚至?xí)?chuàng)建或者刪除組件。
比如如下設(shè)計:
Gallery是一個相冊組件。
Transition是一個動畫指令。
ClickLogger是一個打點擊日志的指令。
對Gallery疊加Animation和ClickLogger就可以使其切換時擁有動畫過渡效果,并且點擊時自動記錄日志。