vue 编码规范

vue 编码规范

1.数据渲染:

渲染数据时,必须使用“Mustache”语法 (双大括号),否则无法在页面显示

<span>{{ msg }}</span>

2.组件命名:

  • 组件名应为多个单词,避免与HTML元素冲突

  • 组件名应该倾向于完整单词而不是缩写

  • 单词之间使用 连字符 ‘-’ 分隔 (recommend-reading)

  • 如果非常通用的组件可以使用一个前缀作为命名空间,例如app-button,这样方便于其他项目复用

  • 在组件定义中(局部注册):

    import Loading from 'components/loading'

    components: {
    'v-loading': Loading,
    }

3.紧密耦合的组件名:

如果一个组件只在某个父组件的场景下有意义,这层关系应该体现在其名字上。因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。

components/
|- TodoList.vue
|- TodoListItem.vue
|- TodoListItemButton.vue 

4.组件引入规则:

组件引入应以变量Loading形式,而不是字符串"Loading"形式

import Loading from 'components/loading';  

5.尽量使用缩写:

比如使用 :style 代替 v-bind:style;用 @click 代替 v-on:click

6.不要将 html 的 attribute 和 vue 的 model 混用:

img、a标签等如需添加动态属性,应用 :src=" " / :href=" " ,而不是用 src={{}}。

正确使用方法如下:

![](baseUrl + item.cover) 
<a :href="baseUrl + item.id" />   

注:路由 to 属性如是动态数据,也需用v-bind 绑定

<li class="nav-item" v-for="(item,index) in routeArr">
    <router-link  :to='item.url' :key="item.id">{{item.name}}</router-link>
 </li>

7.data属性:

在组件中,data值必须是函数 (因为组件可能被多次调用,当data为普通对象时,data内的数据会被共享,为函数时,则每个组件生成为独立data作用域")

export default {
    data () { 
      return {
        foo: 'bar'
      }
  }
} 

8.method方法命名:

  • ajax数据请求:以get、post开头,以data结尾

    getListData、postFormData

  • 事件:事件方法以on开头

    onChangeColor、onChangeStatus

  • 驼峰命名规则

9.vue方法一般放置顺序:

  • components(组件)

  • props(组件之间的传递值)

  • data(初始化数据)

  • computed (计算属性,做逻辑处理)

  • methods (方法)

  • mounted(钩子函数,一般调用方法)

例如:

 export default{
      components:{
        
      },
      props:[],
      data(){
        return { 
        
        }
     },
     computed:{ 

     }
     methods:{

     },
     mounted:{
    
    }
 }

10.为v-for设置键值:

当使用v-for渲染列表时, 需要对应的key值,以维护内部组件及其子树的状态

<li v-for="todo in todos" :key="todo.id">{{ todo.text }}</li> 

11.为组件样式设置作用域:

为避免不同组件之间css样式冲突,需在style标签中设置作用域;

设置作用域可使用scoped,也可通过CSS Modules(CSS Modules是一种技术流的组织css代码的策略,它是依靠动态生成class名这一手段为css提供默认的局部作用域。)

<style scoped>
    .button {
      border: none;
      border-radius: 2px;
    }
</style>  

<style module>
    .button {
      border: none;
      border-radius: 2px;
    }
</style>  

12. < template >< /template >标签注意点:

组件中< template > < /template > 标签内只能有一个根元素

<template>
    <div class="wrap"> 
        content.....
    </div>
</template>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,082评论 0 29
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,245评论 0 6
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 11,107评论 4 129
  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 6,095评论 0 42
  • 鞭炮声声在耳边,礼花绽放更灿烂,年夜饭香气弥漫,我被浓浓的年味裹携着………逝去的岁月, 走近的春天, 我心潮澎湃...
    从容sunshine阅读 265评论 0 0