Vue風(fēng)格指南總結(jié)

命名規(guī)范

A優(yōu)先級(jí)

  1. 組件名應(yīng)該始終是多個(gè)單詞:避免跟現(xiàn)有的以及未來的 HTML 元素相沖突

B優(yōu)先級(jí)

  1. 單文件組件的文件名應(yīng)該要么始終是單詞大寫開頭 (PascalCase)潘酗,要么始終是橫線連接 (kebab-case)类溢;
  2. 應(yīng)用特定樣式和約定的基礎(chǔ)組件 (也就是展示類的肤无、無邏輯的或無狀態(tài)的組件) 應(yīng)該全部以一個(gè)特定的前綴開頭箫津,比如 Base、App 或 V蜕着。
  3. 只應(yīng)該擁有單個(gè)活躍實(shí)例的組件應(yīng)該以 The 前綴命名僵蛛,以示其唯一性。
  4. 父組件緊密耦合的子組件應(yīng)該以父組件名作為前綴命名瑟幕。
  5. 單詞順序:組件名應(yīng)該以高級(jí)別的 (通常是一般化描述的) 單詞開頭磕蒲,以描述性的修飾詞結(jié)尾。
  6. 對(duì)于絕大多數(shù)項(xiàng)目來說只盹,在單文件組件和字符串模板中組件名應(yīng)該總是 PascalCase 的——但是在 **DOM **模板中總是 kebab-case 的辣往。
  7. JS/JSX 中的組件名應(yīng)該始終是 PascalCase 的,盡管在較為簡(jiǎn)單的應(yīng)用中只使用 Vue.component 進(jìn)行全局組件注冊(cè)時(shí)殖卑,可以使用 kebab-case 字符串排吴。
  8. 組件名應(yīng)該傾向于完整單詞而不是縮寫。
  9. 在聲明 prop 的時(shí)候懦鼠,其命名應(yīng)該始終使用 camelCase钻哩,而在模板和 JSX中應(yīng)該始終使用 kebab-case。

其他

A優(yōu)先級(jí)

  1. 組件的 data 必須是一個(gè)函數(shù)肛冶。
  2. prop 的定義應(yīng)該盡量詳細(xì)街氢,至少需要指定其類型。
  3. 總是用 key 配合 v-for睦袖。
  4. 永遠(yuǎn)不要把 v-if 和 v-for 同時(shí)用在同一個(gè)元素上珊肃。
  5. 所有組件都應(yīng)該是有作用域的。針對(duì)style馅笙,可以使用scoped 特性伦乔、CSS Modules和BEM 約定。
  6. 在插件董习、混入等擴(kuò)展中始終為自定義的私有屬性使用 $_ 前綴烈和。并附帶一個(gè)命名空間以回避和其它作者的沖突 (比如 $_yourPluginName_)。

B優(yōu)先級(jí)

  1. 只要有能夠拼接文件的構(gòu)建系統(tǒng)皿淋,就把每個(gè)組件單獨(dú)分成文件招刹。
  2. 單文件組件恬试、字符串模板和 JSX 中沒有內(nèi)容的組件應(yīng)該是自閉合的——但在 DOM 模板里永遠(yuǎn)不要這樣做。
  3. 多個(gè)特性的元素應(yīng)該分多行撰寫疯暑,每個(gè)特性一行训柴。
  4. 組件模板應(yīng)該只包含簡(jiǎn)單的表達(dá)式,復(fù)雜的表達(dá)式則應(yīng)該重構(gòu)為計(jì)算屬性或方法妇拯。
  5. 應(yīng)該把復(fù)雜計(jì)算屬性分割為盡可能多的更簡(jiǎn)單的屬性幻馁。
  6. 非空 HTML 特性值應(yīng)該始終帶引號(hào) (單引號(hào)或雙引號(hào),選你 JS 里不用的那個(gè))越锈。
  7. 指令縮寫 (用 : 表示 v-bind: 和用 @ 表示 v-on:) 應(yīng)該要么都用要么都不用宣赔。

C優(yōu)先級(jí)

  1. 組件/實(shí)例的選項(xiàng)應(yīng)該有統(tǒng)一的順序。
  1. 副作用 (觸發(fā)組件外的影響)
    el
  2. 全局感知 (要求組件以外的知識(shí))
    name
    parent
  3. 組件類型 (更改組件的類型)
    functional
  4. 模板修改器 (改變模板的編譯方式)
    delimiters
    comments
  5. 模板依賴 (模板內(nèi)使用的資源)
    components
    directives
    filters
  6. 組合 (向選項(xiàng)里合并屬性)
    extends
    mixins
  7. 接口 (組件的接口)
    inheritAttrs
    model
    props/propsData
  8. 本地狀態(tài) (本地的響應(yīng)式屬性)
    data
    computed
  9. 事件 (通過響應(yīng)式事件觸發(fā)的回調(diào))
    watch
    生命周期鉤子 (按照它們被調(diào)用的順序)
  10. 非響應(yīng)式的屬性 (不依賴響應(yīng)系統(tǒng)的實(shí)例屬性)
    methods
  11. 渲染 (組件輸出的聲明式描述)
    template/render
    renderError
  1. 元素 (包括組件) 的特性應(yīng)該有統(tǒng)一的順序瞪浸。
  1. 定義 (提供組件的選項(xiàng))
    is
  2. 列表渲染 (創(chuàng)建多個(gè)變化的相同元素)
    v-for
  3. 條件渲染 (元素是否渲染/顯示)
    v-if
    v-else-if
    v-else
    v-show
    v-cloak
  4. 渲染方式 (改變?cè)氐匿秩痉绞?
    v-pre
    v-once
  5. 全局感知 (需要超越組件的知識(shí))
    id
  6. 唯一的特性 (需要唯一值的特性)
    ref
    key
    slot
  7. 雙向綁定 (把綁定和事件結(jié)合起來)
    v-model
  8. 其它特性 (所有普通的綁定或未綁定的特性)
  9. 事件 (組件事件監(jiān)聽器)
    v-on
  10. 內(nèi)容 (覆寫元素的內(nèi)容)
    v-html
    v-text
  1. 當(dāng)你的組件開始覺得密集或難以閱讀時(shí)儒将,在多個(gè)屬性之間添加空行可以讓其變得容易。
props: {
  value: {
    type: String,
    required: true
  },

  focused: {
    type: Boolean,
    default: false
  },

  label: String,
  icon: String
},

computed: {
  formattedValue: function () {
    // ...
  },

  inputClasses: function () {
    // ...
  }
}
  1. 單文件組件應(yīng)該總是讓 <script>对蒲、<template><style> 標(biāo)簽的順序保持一致钩蚊。且 <style> 要放在最后,因?yàn)榱硗鈨蓚€(gè)標(biāo)簽至少要有一個(gè)蹈矮。
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
<!-- 或者 -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>

參考文獻(xiàn):Vue風(fēng)格指南

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末砰逻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泛鸟,更是在濱河造成了極大的恐慌蝠咆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件北滥,死亡現(xiàn)場(chǎng)離奇詭異刚操,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)再芋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門菊霜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人济赎,你說我怎么就攤上這事鉴逞。” “怎么了司训?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵构捡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我壳猜,道長(zhǎng)勾徽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任蓖谢,我火速辦了婚禮捂蕴,結(jié)果婚禮上譬涡,老公的妹妹穿的比我還像新娘闪幽。我一直安慰自己啥辨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布盯腌。 她就那樣靜靜地躺著溉知,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腕够。 梳的紋絲不亂的頭發(fā)上级乍,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音帚湘,去河邊找鬼玫荣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛大诸,可吹牛的內(nèi)容都是我干的捅厂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼资柔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼焙贷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贿堰,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤辙芍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后羹与,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體故硅,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纵搁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了契吉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诡渴,死狀恐怖捐晶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妄辩,我是刑警寧澤惑灵,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站眼耀,受9級(jí)特大地震影響英支,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哮伟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一干花、第九天 我趴在偏房一處隱蔽的房頂上張望妄帘。 院中可真熱鬧,春花似錦池凄、人聲如沸抡驼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽致盟。三九已至,卻和暖如春尤慰,著一層夾襖步出監(jiān)牢的瞬間馏锡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工伟端, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杯道,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓责蝠,卻偏偏與公主長(zhǎng)得像党巾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玛歌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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

  • title: 風(fēng)格指南type: style-guide 這里是官方的 Vue 特有代碼的風(fēng)格指南昧港。如果在工程中使...
    ChenyuMa閱讀 1,069評(píng)論 1 1
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容支子。關(guān)于...
    云之外閱讀 5,050評(píng)論 0 29
  • 1.安裝 可以簡(jiǎn)單地在頁面引入Vue.js作為獨(dú)立版本创肥,Vue即被注冊(cè)為全局變量,可以在頁面使用了值朋。 如果希望搭建...
    Awey閱讀 11,027評(píng)論 4 129
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,214評(píng)論 0 6
  • 兒子今天參加鋼琴的八級(jí)考試叹侄。早晨剛要出門跑步,但我還是停下了腳步昨登≈捍考試是要提前至少半個(gè)小時(shí)的。孩子還要有一個(gè)平靜的...
    陽光滕君閱讀 168評(píng)論 0 0