者:sunshine小小倩
轉發鏈接:https://juejin.im/post/592d4a5b0ce463006b43b6da
前端中的命名規范:打造整潔代碼的藝術
**引言:**
在前端開發的世界中,代碼質量不僅體現在功能的實現,也體現在代碼的可讀性與維護性上。良好的命名規范正是提升代碼質量不可或缺的一部分,它如同樂譜中的音符標識,清晰有序地引導著每一位閱讀者理解程序的脈絡。本文將深入探討前端開發中的命名規范,結合實例代碼,帶你領略命名藝術的魅力,助你編寫出更易于閱讀、維護和擴展的代碼。
---
### **一、HTML元素命名規范**
**標題:語義化命名,讓HTML結構一目了然**
```html
<!-- 不良示例 -->
<div id="d1">標題</div>
<div id="c1">內容</div>
<!-- 優秀示例 -->
<header class="site-header">標題</header>
<section class="content-section">內容</section>
```
在HTML元素命名時,應盡量使用語義化的標簽,如`<header>`、`<section>`等代替無意義的`<div>`。同時,使用類名(class)描述元素的用途或樣式,如`.site-header`、`.content-section`等,增強代碼的可讀性。
---
### **二、CSS選擇器與變量命名規范**
**標題:清晰、一致、描述性**
1. **CSS選擇器命名**:
```css
/* 不良示例 */
#d1 { ... }
.c1 { ... }
/* 優秀示例 */
.site-header { ... }
.content-section { ... }
```
CSS選擇器應遵循一致性原則,如使用BEM(Block Element Modifier)命名法,提高代碼的復用性和模塊化程度。
2. **CSS變量命名**:
```css
:root {
--primary-color: #1abc9c;
--font-size-base: 16px;
}
/* 使用變量 */
body {
font-size: var(--font-size-base);
color: var(--primary-color);
}
```
CSS變量命名應具有描述性,表明其用途,如`--primary-color`和`--font-size-base`。
---
### **三、JavaScript變量、函數與類命名規范**
**標題:駝峰式命名與帕斯卡式命名的抉擇**
1. **變量命名**:
```javascript
// 不良示例
let s='hello';
let counter1=0;
// 優秀示例
let greeting = 'hello';
let currentCount = 0;
```
變量名應使用駝峰式命名法(camelCase),首字母小寫,后續單詞首字母大寫,體現語義。
2. **函數命名**:
```javascript
// 不良示例
function c1(){...}
// 優秀示例
function calculateTotalPrice(){...}
```
函數名也應使用駝峰式命名法,并且名字應清晰反映其功能。
3. **類命名**:
```javascript
// 不良示例
class c1{...}
// 優秀示例
class ShoppingCart{...}
```
類名使用帕斯卡式命名法(PascalCase),所有單詞首字母大寫。
---
### **四、模塊與文件命名規范**
**標題:清晰的目錄結構與文件命名**
```bash
├── components/
│ ├── Button/
│ │ ├── Button.vue
│ │ └── index.js
│ ├── Header/
│ │ ├── Header.vue
│ │ └── index.js
├── utils/
│ ├── stringUtils.js
│ └── dateUtils.js
```
模塊與文件命名應簡潔明了,體現其內容和用途,同時保持目錄結構的清晰和層級分明。
---
**結語:**
良好的命名規范就如同一把鑰匙,幫助開發者快速理解代碼含義,也為后期維護帶來了極大的便利。在實際工作中,堅持遵循命名規范,不僅能提升團隊協作效率,也有助于個人編程習慣的規范化和職業素養的養成。無論是HTML元素、CSS選擇器,還是JavaScript變量與函數,乃至整個項目的架構,都應該體現出命名的藝術,共同編織出一片清爽、易讀、易維護的代碼森林。記住,好的代碼本身就是最好的注釋,而命名規范則是這幅畫卷中最靈動的筆觸。
程序開發過程中,我們始終要謹記的一點就是:程序是寫給人看的,不是寫給機器看的。任何項目開發,都必須要考慮到人員迭代,我們不能讓下一個接手你代碼的人,在看到你寫的代碼時會說出這樣的話,“這個代碼是人寫出來的嗎?可讀性太差了”。因此,我們必須遵循一定的規范,讓代碼的可讀性更強。
今天,我們就一起來看下前端開發過程所能涉及到的跟HTML有關的規范問題。
HTML5
在HTML文件中,推薦使用支持HTML5特性的文檔聲明,<!DOCTYPE html>。
首先是在文件的命名上,應當采用駝峰式命名,首字母小寫,后面每個單詞首字母大寫,而且對于具體的文件應當具有語義化,能夠給人一種直觀的感受這個文件的作用是什么。現在前端開發開發過程中都講求模塊化開發,甚至是組件化開發,在文件命名時更應該以模塊名或者組件名來命名。
例如在寫一個AngularJS應用時,由于會涉及到Controller,Service,Filter等概念,我們會分別建立一個文件,假如這個模塊的名字是庫存管理stockManage,我們可以這樣來命名文件。
stockManageCtrl
stockChangeService
stockChangeFilter
我們所說的語義化指的是使用具有語義化的標簽,在H5中添加了類似于header, nav, article, section, aside, footer等標簽,從單詞的意思上我們也很容易看出標簽的含義。
我們不推薦使用只有div標簽的頁面,例如
不推薦使用
而是應該使用以下這種帶有語義化的標簽。
推薦使用
img標簽是網頁用來顯示照片的標簽,在頁面所有標簽中占據的比例非常之高,但是在使用img標簽時也有下面需要注意的點。
給定width和height屬性
因為瀏覽器在加載圖片的過程中,需要先下載圖片,然后再解析圖片的高度和寬度,如果不給img元素設定高度和寬度,這樣在圖片加載過程中會不斷的計算,重排頁面的布局,在網絡不好的時候就會經常出現元素出現不規律移動的情況。因此給img元素設定width和height屬性是必要的。
alt屬性
img標簽的alt屬性表示的是在圖片無法顯示時,使用文字來代替顯示,它可以用在以下幾個場景中:
網路延遲太大
src屬性指定路徑出錯
瀏覽器禁用圖像
由于其有良好的信息提示效果,并且有助于網頁SEO效果,強烈建議在img標簽中使用alt屬性。
而且很重要的一點是img標簽的引入是需要呈現出與頁面相關的內容,其他情況應該使用CSS樣式實現。例如我們不推薦下面這種情況。
不推薦
而推薦使用下面這種情況
推薦使用
前端文件主要包括HTML頁面文件,CSS樣式文件和Javascript腳本文件。我們應該讓三者各司其職,在HTML中不應該出現CSS和JS表達式;在JS文件中,不應該出現大量的HTML和CSS代碼。在HTML文檔中應當盡量少的引入CSS和JS文件。為了保證文件的純凈,我們應當遵循下面的原則。
一個HTML文件應該只引入一個CSS文件
合理運用JS合并技術(Gulp, Webpack插件),保證引入JS文件不多于兩個
不使用行內腳本元素(<script>alert('Hello World')</script>)
不在標簽上使用style內聯樣式
不要使用style屬性
腳本加載在網頁加載過程中是一個很耗性能的過程,如果把JS文件放在head標簽里,它的加載會一直阻塞DOM的解析,造成頁面延遲。
因此現在講求的是腳本的異步加載過程,我們會使用到async關鍵字,考慮到瀏覽器的兼容性,我們推薦使用下面的方式加載腳本。
推薦方式
合理使用ID和錨點可以非常方便的實現當前頁面間的跳轉,現在越來越多的教程網頁由于是單頁面,經常會用到錨點跳轉。
對錨點知識還不了解的,可以看看我寫的這篇文章《神奇的html錨點,讓你的網頁在內部自由的跳轉》。
今天這篇文章主要總結了前端開發過程中的HTML規范問題,相信大家也或多或少遇到過,希望這篇文章能加深大家的認識。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。