按照一定的結構組織,使得組件便于理解。
### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#為什么-5)為什么?
* 導出一個清晰、組織有序的組件,使得代碼易于閱讀和理解。同時也便于標準化。
* 按首字母排序 properties、data、computed、watches 和 methods 使得這些對象內的屬性便于查找。
* 合理組織,使得組件易于閱讀。(name; extends; props, data 和 computed; components; watch 和 methods; lifecycle methods 等)。
* 使用?`name`?屬性。借助于?[vue devtools](https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=en)?可以讓你更方便的測試。
* 合理的 CSS 結構,如?[BEM](https://medium.com/tldr-tech/bem-blocks-elements-and-modifiers-6b3b0af9e3ea#.bhnomd7gw)?或?[rscss](https://github.com/rstacruz/rscss)?-?[詳情?](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#%E4%BD%BF%E7%94%A8%E7%BB%84%E4%BB%B6%E5%90%8D%E4%BD%9C%E4%B8%BA%E6%A0%B7%E5%BC%8F%E4%BD%9C%E7%94%A8%E5%9F%9F%E7%A9%BA%E9%97%B4)。
* 使用單文件 .vue 文件格式來組件代碼。
### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#怎么做-5)怎么做?
組件結構化
~~~
<template lang="html">
<div class="Ranger__Wrapper">
<!-- ... -->
</div>
</template>
<script type="text/javascript">
export default {
// 不要忘記了 name 屬性
name: 'RangeSlider',
// 使用組件 mixins 共享通用功能
mixins: [],
// 使用其它組件
components: {},
// 組成新的組件
extends: {},
// 組件屬性、變量
props: {
bar: {}, // 按字母順序
foo: {},
fooBar: {},
},
// 變量
data() {
return {}
},
creted () {},
mounted () {},
computed: {},
// 使用其它組件
components: {},
// 方法
watch: {},
methods: {},
// 生命周期函數
beforeCreate() {},
mounted() {}
};
</script>
<style scoped>
.Ranger__Wrapper {
<!-- ... -->
}
</style>
~~~
- Vue開發規范
- 基于模塊開發
- 組件
- 組件命名規則
- 基礎組件名
- 單例組件名
- 緊密耦合的組件名
- 組件名中的單詞順序
- 組件文件夾命名規則
- method方法
- methods方法命名規則
- 組件結構化
- 組件事件命名規則
- v-for與v-if
- 為 v-for 設置鍵值
- 避免 v-if 和 v-for 用在一起
- Prop
- Prop命名規則
- Prop定義
- 避免 this.$parent
- 謹慎使用 this.$refs
- 隱性的父子組件通信
- 元素
- 元素特性的順序
- 多個特性的元素擺放規則
- 單文件組件的頂級元素的順序
- 簡化代碼
- 模板中簡單的表達式
- 簡單的計算屬性
- 指令縮寫
- 文件引用路徑
- 其他注意
- 組件數據
- 將 this 賦值給 component 變量
- 對組件文件進行代碼校驗
- 盡可能使用 mixins
- 非 Flux 的全局狀態管理
- 只在需要時創建組件
- HTML開發規范
- HTML語法
- HTML5 doctype
- 語言屬性
- IE 兼容模式
- 字符編碼
- 引入 CSS 和 JavaScript 文件
- 實用為王
- 屬性順序
- 布爾(boolean)型屬性
- 減少標簽的數量
- JavaScript 生成的標簽
- CSS開發規范
- CSS語法
- 聲明順序
- 不要使用 @import
- 媒體查詢(Media query)的位置
- 帶前綴的屬性
- 單行規則聲明
- 簡寫形式的屬性聲明
- Less 和 Sass 中的嵌套
- Less 和 Sass 中的操作符
- 注釋
- class 命名
- 選擇器
- 代碼組織