美文网首页
vue开发规范

vue开发规范

作者: 曲昶光 | 来源:发表于2020-05-07 16:13 被阅读0次

vue开发规范

一、框架

vue 目录结构规范如下

src                                  源码目录
|-- api                              接口,统一管理
|-- assets                           静态资源,统一管理
|-- components                       公用组件,全局文件
|-- filters                          过滤器,全局工具
|-- icons                            图标,全局资源
|-- layout                           侧边栏及导航存放文件
|-- mock                             模拟接口,临时存放
|-- router                           路由,统一管理
|-- store                            vuex, 统一管理
|-- views                            视图目录
|   |-- login                        视图模块名
|   |-- |-- index.vue                模块入口页面
|   |-- |-- components               模块页面级通用组件文件夹
|   |-- |-- |--login-verify.vue      模块页面级通用组件页面

1.组件文件夹

组件文件夹的名字:应该始终是以连接线(-)连接的单词,一方面可与组件名一致,使项目更加清晰,另一方面这样的写法对编辑器引入也很友好。
页面级组件文件命名:应该始终以视图模块文件夹名为前缀开头以连接线(-)连接组件功能名词用以区别与其他业务组件。

|-- exam-system               视图模块文件夹
|-- |-- index.vue       模块入口页面
|-- |-- components               模块页面级通用组件文件夹
|-- |-- |-- exam-system-item.vue        模块页面级组件文件
|-- |-- |-- exam-system-nav.vue       模块页面级组件文件
|-- |-- |-- exam-system-header.vue    模块页面级组件文件

2.组件名

组件名为多个单词,并且用连接线(-)连接,避免与 HTML 标签冲突,并且结构更加清晰。

export default {
    name: 'page-edit'
}

3.Prop

定义 Prop 的时候应该始终以驼峰格式(camelCase)命名,在父组件赋值的时候使用连接线(-)。这里遵循每个语言的特性,因为在 HTML 标记中对大小写是不敏感的,使用连接线更加友好;而在 JavaScript 中更自然的是驼峰命名。

props: {
    articleStatus: Boolean
}
// HTML
<article-item :article-status="true"></article-item>

Prop 的定义应该尽量详细的指定其类型、默认值和验证

props: {
    attrM: Number,
    attrA: {
        type: String,
        required: true
    },
    attrZ: {
        type: Object,
        // 数组/对象的默认值应该由一个工厂函数返回
        default: function () {
            return {
                msg: '测试测试'
            }
        }
    },
    attrE: {
        type: String,
        validator: function (v) {
            return !(['success', 'fail'].indexOf(v) === -1) 
        }
    }
    }

4.v-for

在执行 v-for 遍历的时候,总是应该带上 key 值使更新 DOM 时渲染效率更高。

<ul>
    <li v-for="item in list" :key="item.id">
        {{ item.title }}
    </li>
</ul>

v-for 应该避免与 v-if 在同一个元素(例如:< li >)上使用,因为 v-for 的优先级比 v-if 更高,为了避免无效计算和渲染,应该尽量将 v-if 放到容器的父元素之上。

<ul v-if="showList">
    <li v-for="item in list" :key="item.id">
        {{ item.title }}
    </li>
</ul>

5.v-if / v-else-if / v-else

若同一组 v-if 逻辑控制中的元素逻辑相同,Vue 为了更高效的元素切换,会复用相同的部分,例如:value。为了避免复用带来的不合理效果,应该在同种元素上加上 key 做标识。

<div v-if="hasData" key="mazey-data">
    <span>{{ mazeyData }}</span>
</div>
<div v-else key="mazey-none">
    <span>无数据</span>
</div>

6.指令缩写

为了统一规范始终使用指令缩写,使用v-bind,v-on并没有什么不好,这里仅为了统一规范。

<input :value="mazeyUser" @click="verifyUser">

7.样式

为了避免样式冲突,整个项目要么全都使用 scoped 特性,要么使用 BEM 约定

<!-- 使用 scoped 特性 -->
<template>
    <button class="btn btn-sure">确认</button>
</template>
<style scoped>
    .btn{
        border: 1px solid #F1F1F1;
    }
    .btn-sure{
        background-color: blue;
    }
</style>

<!-- 使用 BEM(Block Element Modifier) 特性 -->
<template>
    <button class="menu-btn menu-btn-sure">确认</button>
</template>
<style>
    .menu-btn{
        border: 1px solid #F1F1F1;
    }
    .menu-btn-sure{
        background-color: blue;
    }
</style>

8.单文件组件的顶级元素顺序

为了统一和便于阅读,应该按 < template>、< script>、< style>的顺序放置。

<template>
<!-- HTML -->
</template>
<script>
/* JavaScript */
</script>
<style>
/* CSS */
</style>

二.JavaScript

1.var / let / const

建议不再使用 var,而使用 let / const,优先使用 const。任何一个变量的使用都要提前申明,除了 function 定义的函数可以随便放在任何位置。
声明变量时使用驼峰命名法,命名必须是跟需求的内容相关的词如果是复数加s

let  productPageDetail = "产品详情页面";

声明常量时使用大写字母匈牙利式命名法

const MAX_COUNT = 10
const URL = 'https://www.baidu.com/'

2.引号

建议不再使用双引号,静态字符串使用单引号,动态字符串使用反引号衔接。

const foo = '测试'
const bar = `${foo},vue规范`

3.method 方法命名命名规范

统一使用驼峰命名法,请求数据方法,以 Data 结尾

methods: {
    footerItemData(){
    /*方法*/
    },
}

4.组件选项顺序

 components
 props
 data
 computed
 created
 mounted
 methods
 filter
 watch

5.注释

应该给每一个模块文件写一个区块注释。Vscode安装 KoroFileHeader 插件

<!--
 * @Descripttion: 
 * @version: 
 * @Author: 
 * @Date: 2020-05-06 10:05:08
 * @LastEditors: 
 * @LastEditTime: 2020-05-07 15:13:15
 -->

相关文章

  • Vue开发规范

    Vue开发规范

  • Vue前端开发规范及代码风格

    Vue.js 开发规范目录及说明 版本v1.0日期2020-02-18 本文档为前端 vue 开发规范 规范目的 ...

  • vue开发组件设置*.vue文件模板

    title: vue组件开发模板date: 2016-11-21 开发模板 规范 本文介绍vue组件开发的模板,在...

  • vue开发规范

    Vue 开发规范目录及说明 规范目的 命名规范 结构化规范注 释规范 编码规范 CSS 规范 规范目的 为提高团队...

  • vue开发规范

    目的 统一开发风格,使代码结构更加清晰明了。 前提条件 项目是用vue搭建的,前端vue打开项目是需要一个环境运行...

  • vue开发规范

    vue开发规范 一、框架 vue 目录结构规范如下 1.组件文件夹 组件文件夹的名字:应该始终是以连接线(-)连接...

  • vue开发规范

    前言 好的命名规范可以让不用为取名字而苦恼,同时找bug时更快的定位到位置。 与它的功能相配套 不与其他业务组件命...

  • vue开发规范

    来自掘金的分享JS规范css规范vue风格指南官方文档

  • Vue开发规范

    本文为基于vue官方风格整理的一份vue前端开发规范。 此规范主要目的统一团队开发风格,输出高质量的代码便于团队协...

  • Vue开发规范

    文件命名规范 components / layouts components和layouts下的文件夹名以及.vu...

网友评论

      本文标题:vue开发规范

      本文链接:https://www.haomeiwen.com/subject/napaghtx.html