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