摘要:未來(lái)會(huì)使用來(lái)取代它,但是現(xiàn)在貌似還沒(méi)有取代的方案,在新版的中這個(gè)功能已經(jīng)被刪除了,并且在使用的時(shí)候會(huì)在中給出警告。
嘿!看看這幾年啊,Web 前端的發(fā)展可是真快啊!四大 Web 組件標(biāo)準(zhǔn)想想幾年前,HTML 是前端開發(fā)者的基本技能,通過(guò)各式各樣的標(biāo)簽就可以搭建一個(gè)可用的網(wǎng)站,基本交互也不是問(wèn)題。如果再來(lái)點(diǎn) CSS,嗯,金黃酥脆,美味可口。這時(shí)候再撒上幾把 JavaScript,簡(jiǎn)直讓人欲罷不能。
隨著需求的增長(zhǎng),HTML 的結(jié)構(gòu)越來(lái)越復(fù)雜,大量重復(fù)的代碼使得頁(yè)面改動(dòng)起來(lái)異常困難,這也就孵化了一批批模版工具,將公共的部分抽取出來(lái)變?yōu)楣步M件。再后來(lái),隨著 JavaScript 的性能提升,JavaScript 的地位越來(lái)越高,不再只是配菜了,前端渲染的出現(xiàn)降低了服務(wù)端解析模版的壓力,服務(wù)端只要提供靜態(tài)文件和 API 接口就行了嘛。再然后,前端渲染工具又被搬回了服務(wù)端,后端渲染出現(xiàn)了(黑人問(wèn)號(hào)???)
總之,組件化使得復(fù)雜的前端結(jié)構(gòu)變得清晰,各個(gè)部分獨(dú)立起來(lái),高內(nèi)聚低耦合,使得維護(hù)成本大大降低。
那么,你有聽(tīng)說(shuō)過(guò)原生 HTML 組件嗎?
在說(shuō)原生 HTML 組件之前,要先簡(jiǎn)單介紹一下四大 Web 組件標(biāo)準(zhǔn),四大 Web 組件標(biāo)準(zhǔn)分別為:HTML Template、Shadow DOM、Custom Elements 和 HTML Imports。實(shí)際上其中一個(gè)已經(jīng)被廢棄了,所以變成“三大”了。
HTML Template 相信很多人都有所耳聞,簡(jiǎn)單的講也就是 HTML5 中的 標(biāo)簽,正常情況下它無(wú)色無(wú)味,感知不到它的存在,甚至它下面的 img 都不會(huì)被下載,script 都不會(huì)被執(zhí)行。 就如它的名字一樣,它只是一個(gè)模版,只有到你用到它時(shí),它才會(huì)變得有意義。
Shadow DOM 則是原生組件封裝的基本工具,它可以實(shí)現(xiàn)組件與組件之間的獨(dú)立性。
Custom Elements 是用來(lái)包裝原生組件的容器,通過(guò)它,你就只需要寫一個(gè)標(biāo)簽,就能得到一個(gè)完整的組件。
HTML Imports 則是 HTML 中類似于 ES6 Module 的一個(gè)東西,你可以直接 import 另一個(gè) html 文件,然后使用其中的 DOM 節(jié)點(diǎn)。但是,由于 HTML Imports 和 ES6 Module 實(shí)在是太像了,并且除了 Chrome 以外沒(méi)有瀏覽器愿意實(shí)現(xiàn)它,所以它已經(jīng)被廢棄并不推薦使用了。未來(lái)會(huì)使用 ES6 Module 來(lái)取代它,但是現(xiàn)在貌似還沒(méi)有取代的方案,在新版的 Chrome 中這個(gè)功能已經(jīng)被刪除了,并且在使用的時(shí)候會(huì)在 Console 中給出警告。警告中說(shuō)使用 ES Modules 來(lái)取代,但是我測(cè)試在 Chrome 71 中 ES Module 會(huì)強(qiáng)制檢測(cè)文件的 MIME 類型必須為 JavaScript 類型,應(yīng)該是暫時(shí)還沒(méi)有實(shí)現(xiàn)支持。
Shadow DOM要說(shuō)原生 HTML 組件,就要先聊聊 Shadow DOM 到底是個(gè)什么東西。
大家對(duì) DOM 都很熟悉了,在 HTML 中作為一個(gè)最基礎(chǔ)的骨架而存在,它是一個(gè)樹結(jié)構(gòu),樹上的每一個(gè)節(jié)點(diǎn)都是 HTML 中的一部分。DOM 作為一棵樹,它擁有著上下級(jí)的層級(jí)關(guān)系,我們通常使用“父節(jié)點(diǎn)”、“子節(jié)點(diǎn)”、“兄弟節(jié)點(diǎn)”等來(lái)進(jìn)行描述(當(dāng)然有人覺(jué)得這些稱謂強(qiáng)調(diào)性別,所以也創(chuàng)造了一些性別無(wú)關(guān)的稱謂)。子節(jié)點(diǎn)在一定程度上會(huì)繼承父節(jié)點(diǎn)的一些東西,也會(huì)因兄弟節(jié)點(diǎn)而產(chǎn)生一定的影響,比較明顯的是在應(yīng)用 CSS Style 的時(shí)候,子節(jié)點(diǎn)會(huì)從父節(jié)點(diǎn)那里繼承一些樣式。
而 Shadow DOM,也是 DOM 的一種,所以它也是一顆樹,只不過(guò)它是長(zhǎng)在 DOM 樹上的一棵特殊的紫薯
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98462.html
摘要:深度學(xué)習(xí)在過(guò)去的幾年里取得了許多驚人的成果,均與息息相關(guān)。機(jī)器學(xué)習(xí)進(jìn)階筆記之一安裝與入門是基于進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),被廣泛用于語(yǔ)音識(shí)別或圖像識(shí)別等多項(xiàng)機(jī)器深度學(xué)習(xí)領(lǐng)域。零基礎(chǔ)入門深度學(xué)習(xí)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)。 多圖|入門必看:萬(wàn)字長(zhǎng)文帶你輕松了解LSTM全貌 作者 | Edwin Chen編譯 | AI100第一次接觸長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)時(shí),我驚呆了。原來(lái),LSTM是神...
閱讀 1769·2021-10-19 13:30
閱讀 1335·2021-10-14 09:48
閱讀 1531·2021-09-22 15:17
閱讀 2007·2019-08-30 15:52
閱讀 3273·2019-08-30 11:23
閱讀 1983·2019-08-29 15:27
閱讀 887·2019-08-29 13:55
閱讀 753·2019-08-26 14:05