什么是js組件
我們先理解下什么是組件?通俗的講,可以認(rèn)為組件是能滿足我們某項或某些需求的“東西”,它是什么無所謂。比如我想要一個能放money的東西,那么錢包就是這個“組件",我不用管它是怎么加工的,用的什么材質(zhì)。
這就是一個”組件“
那么回過頭來理解下js組件,就可以理解為能夠滿足我們某個功能需求的js。我們不關(guān)心它內(nèi)部怎么實(shí)現(xiàn)的,只要知到怎么用就行了。
最簡單的js組件
任性的需求:我就想要在我的web頁面點(diǎn)擊任何地方都要給我彈出個框框
-- 這種產(chǎn)品估計會被拍死
客戶有需求,我們不得不滿足啊,所以我們這樣實(shí)現(xiàn)
一般一個js組件會單獨(dú)寫在一個文件中,那么我就新建個js文件把,起名叫做.js,
寫下如下內(nèi)容:
; ( () {
.("click", (e) {
alert("我是最牛的需求");
})
})();
只要在我們html文件尾部引入這個文件,那么我們偉大的需求就搞定了:
根本不用測試驗(yàn)證,效果肯定完美!
解析下這個js組件最前面用了個分號,起初很納悶,這有啥用的,雖然我讀書少,但也不能欺騙我吧引入js文件沒有用,后來經(jīng)過我大量閱讀文章才發(fā)現(xiàn)其中的奧妙,原來它僅僅是用來避免跟別的js文件合并時,上個程序員小哥哥(小姐姐)在最后忘了寫分號而兼容的。那在我這里真沒啥用途,不過為了國際規(guī)范還是寫上吧。那后面的(()...{..})()又是什么鬼!其實(shí)這是一個自執(zhí)行函數(shù),即當(dāng)js文件被引入后就會立馬執(zhí)行,據(jù)說這里用到了閉包的概念,目的是為了減少變量的污染。那這樣就可以理解了,它就是一個函數(shù),最后一個是函數(shù)的參數(shù),前面的是外面?zhèn)鬟M(jìn)去的參數(shù)(可以理解為js的根對象把,就像java中的?)整個流程下來就是,當(dāng)html引入js時,里面的自執(zhí)行函數(shù)開始執(zhí)行,執(zhí)行的內(nèi)容就是給加一個click監(jiān)聽,動作是觸發(fā)alert彈窗。
所以我們頁面啥也沒做就完成了這么變態(tài)的需求,以后再有這種產(chǎn)品也不怕了引入js文件沒有用,直接用這個插件搞定。當(dāng)然這只是玩笑,復(fù)雜的插件還是很難寫的。不過了解了插件中的就有種啥都會的感覺了,后面就可以把之前寫的div拖動實(shí)現(xiàn)改成插件了(先吹個牛。)