国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

CSS 模塊化 實(shí)現(xiàn)方法

2024-07-11 08:44:54
字體:
供稿:網(wǎng)友

最近被“模塊化”纏身,又是文章又是PPT的,被逼著想了很多相關(guān)的東西。整理下我這段時間對于“模塊化”的思考,大多都是我自己從事頁面重構(gòu)這份工作的經(jīng)驗(yàn)和理解,在一定程度上存在局限性,也希望自己能溫故而知新。

“模塊化”只是我們對于過去一直使用的技術(shù)、方法的一個新潮的稱謂,就像“Ajax”。不過做為頁面重構(gòu)發(fā)展的一種趨勢,越來越被大家重視,不自覺也滿口的“模塊化”,只是你真的理解什么是“模塊化”嗎?

什么是模塊化?

對“模塊化”的解釋,在 CNKI 中就有28種。可見“模塊化”思維使用的廣泛。最接近頁面重構(gòu)中的“模塊化”,現(xiàn)有的解釋應(yīng)該就是軟件開發(fā)中的解釋了。

先看一下百度詞條是怎么解釋“ 模塊化 ”的:
“ 模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。每個模塊完成一個特定的子功能,所有的模塊按某種方法組裝起來,成為一個整體,完成整個系統(tǒng)所要求的功能。模塊具有以下幾種基本屬性:接口、功能、邏輯、狀態(tài),功能、狀態(tài)與接口反映模塊的外部特性,邏輯反映它的內(nèi)部特性。在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元。”

相關(guān)的書籍也蠻多的,有興趣的同學(xué)可以搜一下。需要強(qiáng)調(diào)一點(diǎn),我們所借鑒的是一種思維的方式。

頁面制作為什么需要模塊化?

站點(diǎn)內(nèi)容越來越多、代碼越來越臃腫,漸漸影響到了客戶端的體驗(yàn)(主要是打開速度),影響到了維護(hù)的效率。有什么方法可以解決這些問題呢?

我們很容易就想到:減少代碼冗余、提高代碼重用率、圖片壓縮等等,而這些要如何實(shí)現(xiàn)呢?模塊化思維可以解決,即可以有效減少代碼冗余、提高代碼重用率,更重要是可以支持到多人維護(hù),降低維護(hù)成本。CSS寫法較為靈活,容易產(chǎn)生代碼的耦合,使用模塊化也可以在一定程度上降低耦合度,對于BUG的定位也有幫助。所以,我們更應(yīng)該在站點(diǎn)前期就重視并使用“模塊化的思維”編寫站點(diǎn)。

我們之前經(jīng)常提到的站點(diǎn)性能優(yōu)化,有相當(dāng)一部分也是“模塊化”的內(nèi)容,比如提高代碼重用,提高開發(fā)效率等等,“模塊化”的優(yōu)點(diǎn)還有很多,我大概列了一下:

  • 提高代碼重用率
  • 提高開發(fā)效率、減少溝通成本
  • 降低耦合
  • 降低發(fā)布風(fēng)險
  • 減少Bug定位時間和Fix成本
  • 提高頁面容錯
  • 更好的實(shí)現(xiàn)快速迭代
  • 更好的支持灰度發(fā)布

其中最重要的一點(diǎn),我認(rèn)為是“提高代碼重用率”,這也是模塊化最重要的特點(diǎn)之一。

如何實(shí)現(xiàn)“模塊化”?

這里的主要問題是HTML與CSS的“模塊化”,我們可以看下?lián)Q膚的實(shí)現(xiàn)方法:

  • 同一類名,換文件(JS)
  • 同一文件,換類名(JS)

由此可知HTML與CSS的接口實(shí)現(xiàn):

  • CSS引入的三種方式
  • 類名

為了更好的實(shí)現(xiàn)這種接口,需要有相關(guān)的(交互、設(shè)計(jì)、頁面、開發(fā))約定、規(guī)則、規(guī)范,比如:所有當(dāng)前狀態(tài)都使用同一個類名“nonce”,所有變灰的表現(xiàn)都使用原類名后加“_n”,Tab的實(shí)現(xiàn)方式等等。有了這些約定、規(guī)則、規(guī)范后,HTML代碼就很容易可以實(shí)現(xiàn)模板化,統(tǒng)一接口規(guī)范。

有兩個誤區(qū)需要先認(rèn)清下:

  • 模塊化后并不是就能被使用在任何位置(模塊化后的代碼段也是有適用的范圍限制,需要一個提供接口規(guī)則的環(huán)境)
  • 模塊化后并不是就不能再變更(模塊化后的代碼段可根據(jù)實(shí)際需要做修改)

完全獨(dú)立的模塊放在同一項(xiàng)目中,由于項(xiàng)目有自己的表現(xiàn)、交互統(tǒng)一性,所以各模塊間必定出現(xiàn)類似的部分,這些部分可以被提出來做為公共的定義,減少冗余,這時就會出現(xiàn)耦合的問題,完全不耦合是不可能的,因此模塊化中很重要一點(diǎn)就是“適度的耦合”。有了公共定義,就得調(diào)整模塊樣式的實(shí)現(xiàn)方式了,而這種調(diào)整也會影響到“接口”的實(shí)現(xiàn)方式。

由于本篇主要是講模塊化的思維方式,具體實(shí)現(xiàn)的細(xì)節(jié)留待以后的文章中探討。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定南县| 新和县| 武乡县| 台山市| 司法| 德庆县| 民县| 海安县| 乌兰县| 东山县| 咸阳市| 元氏县| 玉环县| 丘北县| 大安市| 双峰县| 阿城市| 灵石县| 贺兰县| 桃江县| 固镇县| 磐石市| 崇文区| 德惠市| 舟曲县| 蓝山县| 深泽县| 新平| 鄂伦春自治旗| 丰宁| 宁夏| 商丘市| 搜索| 富平县| 台前县| 尤溪县| 万源市| 大同县| 犍为县| 周至县| 舒城县|