前端規(guī)范

代碼縮進(jìn)

  • 4個(gè)空格

分號

  • 除代碼塊外的語句末尾都加分號

不推薦

let baz = { a: 1 }
function foo() { return true };
if (foo) { bar = 0 };

推薦

let baz = { a: 1 };
function foo() { return true; }
if (foo) { bar = 0; }

命名

變量名/屬性名

  • 駝峰式 name / firstName / lastName
  • 標(biāo)志型的體現(xiàn)標(biāo)志 isLoading / hasLoaded
  • 全局變量命名語義化榔昔,盡量詳細(xì) globalCityName

函數(shù)名/方法名

  • 駝峰式 goIndex
  • 體現(xiàn)功能 getValue / setValue / sortResult

樣式名

  • 下劃線 mod_info
  • 體現(xiàn)層級關(guān)系 city / city_name

組件名/類名

  • 首字母大寫 Order
  • 駝峰式 OrderList / OrderDetail

文件名

  • 中劃線 order.js / order-list.js / order-detail.js
  • 體現(xiàn)功能 order-reducer.js / order-action.js

空行

代碼塊之間空行

  • 方法與方法之間空行
  • import與class之間空行

拖尾換行

  • 文件末尾留一空行

在非空文件中,存在拖尾換行是一個(gè)常見的 UNIX 風(fēng)格稍途,它的好處是可以方便在串聯(lián)和追加文件時(shí)不會(huì)打斷 Shell 的提示魄宏。在日常的項(xiàng)目中缘揪,保留拖尾換行的好處是,可以減少版本控制時(shí)的代碼沖突。

空格

操作符空格

  • 操作符前后都需要添加空格

不推薦

let sum=1+2

推薦

let sum = 1 + 2

關(guān)鍵字空格

  • 關(guān)鍵字后面加空格

不推薦

if(condition) { ... }

推薦

if (condition) { ... }

行末空格

  • 行末不留空格

不推薦

let a = 1;   

推薦

let a = 1;

函數(shù)命名/調(diào)用空格

  • 函數(shù)聲明與調(diào)用相同:參數(shù)左小括號前不加空格涡真,右小括號后加空格

不推薦

function func () {
  // do something
}
func ()

推薦

function func() {
  // do something
}
func()

逗號分俯,冒號,分號空格

  • 后面使用空格综膀,前面不加空格
    注意行末不留空格

不推薦

[1,2,3]
let baz = { a:1 }
for (let a = 1;a <= 10;a++) { }

推薦

[1, 2, 3]
let baz = { a: 1 }
for (let a = 1; a <= 10; a++) { }

單行代碼塊空格

  • 在單行代碼塊中使用空格澳迫,左花括號后與右花括號前空格

不推薦

function foo() {return true;}
if (foo) {bar = 0}

推薦

function foo() { return true; }
if (foo) { bar = 0 }

圓括號空格

  • 圓括號間不留空格

不推薦

getName( name );

推薦

getName(name);

注釋首尾空格

  • 注釋首尾留空格

不推薦

//comment
/*comment*/

推薦

// comment
/* comment */

空格個(gè)數(shù)

  • 除了縮進(jìn),不要使用多個(gè)空格剧劝。

不推薦

const id =    1234;

推薦

const id = 1234;

無子元素組件閉合

  • 使用單標(biāo)簽

不推薦

<View></View>

推薦

<View />

字符串

  • 單引號
  • 拼接變量統(tǒng)一ES6模板字符串

順序

函數(shù)內(nèi)代碼區(qū)域排序

  • const/let/var
  • 代碼塊內(nèi)變量需提前聲明

模塊js文件代碼區(qū)域排序

  • import
  • const/let/global
  • Class
  • export

React生命周期方法與其他方法順序問題

constructor() { }
componentWillMount() { }
render() { }
componentDidMount() { }
componentWillReceiveProps() { }
shouldComponentUpdate() { }
componentWillUpdate() { }
componentDidUpdate() { }
componentWillUnmount() { }
// 其他方法...

目錄結(jié)構(gòu)

非公共模塊

不同模塊的組件文件橄登、樣式文件、圖片使用相同的目錄存儲(chǔ)

公共模塊

每個(gè)模塊使用自己獨(dú)立的組件目錄讥此、樣式目錄拢锹、圖片目錄(便于移植)

換行問題

  • 一行代碼字符過多時(shí)酌情換行處理(不要出現(xiàn)橫向滾動(dòng)條?)

溫馨提示

  • 短路操作符 && || 在特定情境下需要轉(zhuǎn)換為布爾值萄喳,否則可能會(huì)報(bào)錯(cuò)
{!!length && <View />}
  • 條件語句內(nèi)合理使用隱式轉(zhuǎn)換
    禁止 a == false / a == null / a == 0 / a == '' / a == undefined
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卒稳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子他巨,更是在濱河造成了極大的恐慌充坑,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件染突,死亡現(xiàn)場離奇詭異捻爷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)份企,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門也榄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人司志,你說我怎么就攤上這事甜紫。” “怎么了骂远?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵囚霸,是天一觀的道長。 經(jīng)常有香客問我激才,道長拓型,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任贸营,我火速辦了婚禮吨述,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钞脂。我一直安慰自己揣云,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布冰啃。 她就那樣靜靜地躺著邓夕,像睡著了一般刘莹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上焚刚,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天点弯,我揣著相機(jī)與錄音,去河邊找鬼矿咕。 笑死抢肛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碳柱。 我是一名探鬼主播捡絮,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼莲镣!你這毒婦竟也來了福稳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瑞侮,失蹤者是張志新(化名)和其女友劉穎的圆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體半火,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡越妈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了慈缔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叮称。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡种玛,死狀恐怖藐鹤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赂韵,我是刑警寧澤娱节,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站祭示,受9級特大地震影響肄满,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜质涛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一稠歉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汇陆,春花似錦怒炸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勺疼。三九已至,卻和暖如春捏鱼,著一層夾襖步出監(jiān)牢的瞬間执庐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工导梆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轨淌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓看尼,卻偏偏與公主長得像猿诸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子狡忙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 最佳原則 堅(jiān)持制定好的代碼規(guī)范梳虽。無論團(tuán)隊(duì)人數(shù)多少,代碼應(yīng)該同出一門灾茁。如果你想要為這個(gè)規(guī)范做貢獻(xiàn)或覺得有不合理的地方...
    Tiny_ae3d閱讀 1,621評論 0 1
  • 1:通用規(guī)范 tab鍵用兩個(gè)空格代替 因?yàn)樵诓煌到y(tǒng)的編輯工具對tab解析不一樣窜觉,windows下的tab鍵是占四...
    糖心m閱讀 446評論 0 1
  • 通用規(guī)范 tab鍵用兩個(gè)空格代替 因?yàn)樵诓煌到y(tǒng)的編輯工具對tab解析不一樣,windows下的tab鍵是占四個(gè)空...
    戈薇薇閱讀 466評論 0 1
  • 通用規(guī)范 tab鍵用兩個(gè)空格代替 因?yàn)樵诓煌到y(tǒng)的編輯工具對tab解析不一樣北专,windows下的tab鍵是占四個(gè)空...
    米塔塔閱讀 413評論 0 7
  • 通用規(guī)范 tab鍵用兩個(gè)空格代替因?yàn)樵诓煌到y(tǒng)的編輯工具對tab解析不一樣禀挫,windows下的tab鍵是占四個(gè)空格...
    熊貓貓超人閱讀 29,911評論 17 113