同在一起做一样的开发,为什么别人的工资就是高呢?这份规范指南建议收藏

简介: 同在一起做一样的开发,为什么别人的工资就是高呢?这份规范指南建议收藏

前言

不知道小伙伴们有没有感觉到,为什么我和别一做一样的开发,经验水平也都差不多,为什么别人的工资就是要比我的高,领导和同喜也都比较喜欢他呢?

确实,当两个人的水平经验都差不多的情况下,有些人写的代码就是要好点,让人看起来很舒服,而且维护起来修改功能人家也比较快。这是什么原因呢,其实就是两个字:规范

好的一个代码习惯,可以起到事半功倍的效果。相反,乱写一气,命名不规范,过段时间自己都不看懂到底是怎么回事,这样的人肯定是不会受老板领导甚至同事的喜欢,以后涨薪也不会优先考虑到你。

下面我们介绍一下关于在Vue开发过程中,一些比较好的规范,让大家都能写出漂亮的代码。


开发工具的选择

相信很多人都喜欢用自己的熟练的开发工具都做开发,这无可厚非,但是当我们来到一个新的公司,同事都用的别的开发工具,而你自己别的开发工具,就拿前端来说吧,有的人喜欢用 vscode,有的喜欢用 webstorm,甚至还有小伙伴喜欢用sublime等一些开发工具。如果是您个人开发的话这是可以的,但现实往往是一个团队一起开发,这样我们就不能根据自己的喜好去选择,而是应该跟着团队一起用一样的开发工具。
一定要记得工具就是为了提高开发效率而来的,切不可一成不变。只有适合的没有好与坏,跟着大家一起才能把事情做好。


vue下的常见开发规范

关于页面或者组件

  • 组件名应该始终由多个单词组成,除了根组件 App,以及 <transition><component> 之类的 Vue 内置组件。
    比如:Todo,我们应该命名成:TodoItem 或者  todo-item
    不要起单个单词的名字,这样有可能会和html中的标签冲突
  • 只要有能够拼接文件的构建系统,就把每个组件单独分成文件。对于组件的文件名要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)。切不可两者混用,
    如:myComponent,应该是 MyComponent 或者 my-component
    个人比较喜欢的是:页面采用kebab-case写法,组件采用PascalCase。这样一眼就可以看出哪个.vue是页面哪个.vue是组件。方便查找
  • 自闭合的组件使用方式:
    在单文件组件、字符串模板和JSX中应该使用
<MyComponet/>
在DOM中应该使用
<my-component></my-component>

关于Props

  • 在写的代码中,prop 的定义应该尽量详细,至少指定其类型。
    避免:props: ['status']这样的写法
    要尽可能描述清楚,如:
props: {
  status: {
    type: String,
    required: true,
    validator: value => {
      return [
        'syncing',
        'synced',
        'version-conflict',
        'error'
      ].includes(value)
    }
  }
}
  • 在命名变量的时候,要采用camelCase写法,在使用的时候要采用kebab-case写法。看下面的例子:

不好的写法

// 定义
props: {
  'greeting-text': String
}
// 使用
<WelcomeMessage greetingText="hi"/>

好的写法

// 定义
props: {
  greetingText: String
}
// 使用
<WelcomeMessage greeting-text="hi"/>

关于v-for的使用

  • 在使用v-for的时候,要记住一个不变的规则,就是添加 key 属性。这也是在面试中经常问到的知识。

       同时要记得尽量避免 index下标作为key属性的值。尽可能的使用 id

  • 永远不要在一个元素上同时使用 v-ifv-for

    这也是一个常问的面试题,大家一定要知道原理是什么,就是因为 v-if 的优先级要比 v-for 的优先级高,如果在v-if的里面使用v-for的变量,会拿不到该变量,因为还没有执行到v-for。另外也是因为效率的问题,每次循环都要经过一次 if 判断,会影响页面的渲染。

   如果真的要在一起用可以使用下面的方法:

<ul>
  <template v-for="user in users" :key="user.id">
    <li v-if="user.isActive">
      {{ user.name }}
    </li>
  </template>
</ul>

其它方面的规范

  • 要为组件样式设置作用域,添加 scoped 属性,避免造成全局的css污染
  • 组件/实例选项的顺序
  1. 全局感知 (要求在组件以外被感知)
  • name
  1. 模板编译选项 (改变模板编译的方式)
  • compilerOptions
  1. 模板依赖 (模板内使用的资源)
  • components
  • directives
  1. 组合 (合并 property 至选项内)
  • extends
  • mixins
  • provide/inject
  1. 接口 (组件的接口)
  • inheritAttrs
  • props
  • emits
  • expose
  1. 组合式 API (使用组合式 API 的入口点)
  • setup
  1. 本地状态 (本地的响应式 property)
  • data
  • computed
  1. 事件 (通过响应式事件触发的回调)
  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated
  • activated
  • deactivated
  • beforeUnmount
  • unmounted
  • errorCaptured
  • renderTracked
  • renderTriggered
  • watch
  • 生命周期事件 (按照它们被调用的顺序)
  1. 非响应式的 property (不依赖响应性系统的实例 property)
  • methods
  1. 渲染 (组件输出的声明式描述)
  • template/render


总结

每个公司或者团队在开发规范方面要求不尽相同,以上只是我个人在开发的时候用到的一些规范,不等于其它人或者团队也是这样的要求,我们要做的就是应该尽快适应团队的开发规范。

也可以通过一些工具如:eslint 或者  prettier 等来帮助我们自动格式化代码,这样在写的时候效率也会大大的提高。

最后祝大家都能写出漂亮的代码

4edc953e2c684bbe819ffa954c899c08.png

相关文章
|
存储 关系型数据库 MySQL
数据库原理与应用课程设计报告-工资管理系统
数据库原理与应用课程设计报告-工资管理系统
355 0
【C++初级项目】职工管理系统 v1.0
【C++初级项目】职工管理系统 v1.0
35 0
|
JavaScript 前端开发 NoSQL
|
JSON JavaScript 前端开发
|
测试技术 程序员
程序员岗位考核方式
程序员组内考核: 1.工作量大小     2.工作效率高低 3.工作进度快慢 4.代码质量 5.bug 数量,考察代码质量和态度 6.相关文档书写质量 7.技术考核: 组内成员每人出n道题,之后互相解答,查看最终成绩,出题范围可以局限在某本书中。
1959 0
|
SQL 算法 架构师
干开发为什么你发现有人比你工资高却什么代码都不写呢?
hello~各位读者好,我是鸭血粉丝(大家可以称呼我为「阿粉」),在这个特殊的日子里,大家要注意安全,尽量不要出门,无聊的话,就像阿粉一样,把时间愉快的花在学习上吧。
干开发为什么你发现有人比你工资高却什么代码都不写呢?
|
监控 安全 测试技术
开发经理是否应该写代码?
我花了很多时间为开发经理提供建议,很多刚走上开发经理岗位的新手总是问我:“我应该写多少代码?”