摘要:也是的獨(dú)特性,使得組件化成為了可能。簡(jiǎn)單的說(shuō)就是組件內(nèi)部標(biāo)簽對(duì)內(nèi)語(yǔ)義化,組件自定義標(biāo)簽對(duì)外語(yǔ)義化對(duì)內(nèi)語(yǔ)義化保存自定義標(biāo)簽具有正確的語(yǔ)義,自定義標(biāo)簽對(duì)外語(yǔ)義是對(duì)內(nèi)部標(biāo)簽組合出的功能概括。
組件化
這里首先介紹WebComponents標(biāo)準(zhǔn),以下為騰訊alloyteam團(tuán)隊(duì)的一篇文章里的內(nèi)容。
模板能力,WebComponent提供原生的模板能力
ShadowDOm封裝組件獨(dú)立的內(nèi)部結(jié)構(gòu),ShadowDOm可以理解為一份有獨(dú)立作用域的html片段。這些html片段的css環(huán)境和主文檔隔離的,各自保持內(nèi)部的獨(dú)立性。也是ShadowDOm的獨(dú)特性,使得組件化成為了可能。
自定義原生標(biāo)簽
imports解決組件間的依賴
我們簡(jiǎn)單來(lái)回顧一下WebCompoents的四部分功能:
定義組件的HTML模板能力
Shadow Dom封裝組件的內(nèi)部結(jié)構(gòu),并且保持其獨(dú)立性
Custom Element 對(duì)外提供組件的標(biāo)簽,實(shí)現(xiàn)自定義標(biāo)簽
import解決組件結(jié)合和依賴加載
由此我們能看出一個(gè)真正成熟可靠的組件化方案,需要具備的能力:
資源高內(nèi)聚---- 組件資源內(nèi)部高內(nèi)聚,組件資源由自身加載控制
作用域獨(dú)立----內(nèi)部結(jié)構(gòu)密封,不與全局或其他組件產(chǎn)生影響
自定義標(biāo)簽----定義組件的使用方式
可相互組合----組件真正強(qiáng)大的地方,組件間組裝整合
接口規(guī)范化----組件接口有統(tǒng)一規(guī)范,或者是生命周期的管理
現(xiàn)在流行的React算是很好的實(shí)現(xiàn)了組件化,這里我想談的是自己對(duì)于組件化的理解,探究和嘗試。 我認(rèn)為組件化可分為UI組件化和JS方面的組件化(名字沒(méi)有想好)。以下是對(duì)于這兩方面的想法:
組件化之UI組件化所謂UI組件化,可以想到這里涉及到了HTML和CSS。
在HTML上,我們應(yīng)該保證組件內(nèi)部的標(biāo)簽要語(yǔ)義化。組件的自定義標(biāo)簽具有語(yǔ)義,是對(duì)組件的一種說(shuō)明,概況。簡(jiǎn)單的說(shuō)就是,組件內(nèi)部標(biāo)簽對(duì)內(nèi)語(yǔ)義化,組件自定義標(biāo)簽對(duì)外語(yǔ)義化
對(duì)內(nèi)語(yǔ)義化保存自定義標(biāo)簽具有正確的語(yǔ)義,自定義標(biāo)簽對(duì)外語(yǔ)義是對(duì)內(nèi)部標(biāo)簽組合出的功能概括。
在CSS上,保證代碼上的模塊化,具有獨(dú)立作用域;內(nèi)部的布局,字體的變化(不包括顏色這類(lèi)是不可控的)只由其最外層容器影響。概括的說(shuō)就是,組件內(nèi)部的布局只受容器變化影響。在容器不受外部影響變化的前提下,內(nèi)部容器的樣式不被外部所影響
_但是實(shí)際上_,我認(rèn)為CSS是這里最不可控的。我們能保證在代碼上模塊化,獨(dú)立作用域,這是在寫(xiě)less(或者使用sass)上得到的體驗(yàn),比如下面:
#header{ h1{ a{ } } nav { ul { li { } } } }
在寫(xiě)less的時(shí)候,能感受到所有的樣式都在#header的作用域下發(fā)揮作用。實(shí)際上也是這樣的,但是我為什么說(shuō)CSS是最不可控的呢?這也是我對(duì)于CSS畏懼的地方----同一個(gè)組件結(jié)構(gòu)是可以具有不一樣的樣式的,也就是說(shuō)在我們的html結(jié)構(gòu)相同,js實(shí)現(xiàn)的一些功能也相同的時(shí)候,但是我們的樣式是可以不同的,布局,顏色,字體等等。所以同樣是一個(gè)導(dǎo)航組件,可能會(huì)有不同的樣子。這里我認(rèn)為他們算是不同的組件,因?yàn)榻M件是由結(jié)構(gòu),樣式和邏輯構(gòu)成的。我把沒(méi)有樣式的組件叫做 無(wú)樣式組件 或 可重復(fù)利用用組件 ,而具有樣式的組件叫做 完全體組件 或者 一次性組件。
PS:這里只是一個(gè)菜鳥(niǎo)(目前實(shí)習(xí)還未找到)的看法,缺少實(shí)踐,只能自己去想和嘗試,可能內(nèi)容有"胡言亂語(yǔ)",請(qǐng)大牛能指出問(wèn)題,虛心求教。明天會(huì)繼續(xù)探求和嘗試。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/78893.html
摘要:網(wǎng)絡(luò)上大多數(shù)文章,也是千篇一律的翻譯這句話,可是僅憑這一句話,我想象不到的使用場(chǎng)景。因?yàn)檎嬲氖褂脠?chǎng)景下,子組件的數(shù)據(jù)都是來(lái)自父組件的。組件的數(shù)據(jù)都是來(lái)自調(diào)用者的,然后會(huì)把每一行的,在開(kāi)發(fā)者需要時(shí),傳遞出去。 Vue的slot-scope的場(chǎng)景的個(gè)人理解 這篇文章不是單純把文檔的話和api拿來(lái)翻譯和演示,而是談?wù)勎覍?duì)于slot-scope的使用場(chǎng)景的個(gè)人理解,如果理解錯(cuò)誤,歡迎討論! ...
摘要:我沒(méi)有能力去控制那些自媒體發(fā)布這些不實(shí)的內(nèi)容,但是在我了解的范圍內(nèi),還是盡力輸出一些我的理解。 之前我發(fā)過(guò)一篇《說(shuō)說(shuō)我為什么看好Spring Cloud Alibaba》,然后這兩天有網(wǎng)友給我轉(zhuǎn)了這篇文章《坑爹項(xiàng)目spring-cloud-alibaba,我們也來(lái)一個(gè)》,問(wèn)我的看法是怎么樣的,聊天時(shí)候簡(jiǎn)單說(shuō)了一下。今天在家休息,抽空整理一下內(nèi)容,逐點(diǎn)說(shuō)一下我的看法,主要還是覺(jué)得這篇文章...
摘要:比如說(shuō)預(yù)處理器,組件化,工程化,兼容性處理等方面,這些主要是基于自己的開(kāi)發(fā)經(jīng)驗(yàn)業(yè)界流行技術(shù)方案進(jìn)行準(zhǔn)備。但是在開(kāi)始談面試前我想先提出一個(gè)概念學(xué)霸面試模型學(xué)校的學(xué)習(xí)和公司的工作有很多相似的地方。所以對(duì)于面試,請(qǐng)參考上學(xué)那會(huì)兒你們班學(xué)霸的姿勢(shì)。 背景 參加完 廈門(mén)第四屆CSS Conf 后,讓我對(duì) CSS 產(chǎn)生了新的思考。CSS 是前端必須熟練掌握并保持持續(xù)關(guān)注的技術(shù),但是我又不想在 CS...
摘要:官方文檔官方文檔,官方文檔永遠(yuǎn)是學(xué)習(xí)資料的第一步起步扎實(shí)的基本功。學(xué)習(xí)的新特性,理解,建議可以看看阮一峰的教程。的學(xué)習(xí)曲線會(huì)比較長(zhǎng),需要了解到的常用命令,以及和的模塊規(guī)范,的也很多,其實(shí)更多的是屬于一項(xiàng)后端語(yǔ)言。 學(xué)習(xí)Vue2.0的建議順序 注:本文是看過(guò)其他關(guān)于vue文章之后的想法,歡迎轉(zhuǎn)載,請(qǐng)注明出處。 Vue官方文檔:Vue2.0官方文檔,官方文檔永遠(yuǎn)是學(xué)習(xí)資料的第一步 起步...
摘要:但是它與里大部分的概率是保持一致的。但是如何將轉(zhuǎn)換成函數(shù)的調(diào)用呢就是干這件事情的。好了,讓我們看看是如何工作的。下面的圖片在流程圖中高亮了一個(gè)組件是如何工作的最后希望這篇文章能幫助你理解是如何工作的至少在中 英文原文鏈接 Virtual DOM很神奇,同時(shí)也比較復(fù)雜,難以理解。react,preact和相似的js庫(kù)都使用了virtual dom。然而,我找不到任何好的文章或者文檔,可以...
閱讀 3306·2021-11-19 09:40
閱讀 1649·2021-11-15 11:39
閱讀 747·2021-10-08 10:05
閱讀 2360·2021-09-03 10:29
閱讀 3488·2021-08-12 13:22
閱讀 2356·2019-08-30 15:54
閱讀 3797·2019-08-30 14:03
閱讀 2719·2019-08-30 13:45