你的代码是否存在硬编码

硬编码:硬编码是指将可变变量用一个固定值来代替的方法。如果我们的代码中有大量的硬编码,之后再修改维护成本就会很高。代码的延展性就会很差。

硬编码:if(a==2) return false;
不是硬编码 if(a==b) return true;

减少硬编码的问题

查看了很多的博客之后,发现大部分的人都会选择创建一个枚举类Enums.js,然后在创建常量文件,维护常量文件和枚举类就可。方法如下,作为记录,如果有更好的方式请留言。

Enum.js文件

export class Enum {
    database = [];

    constructor(arr) {
      //生成map
      this.database = arr
      arr.forEach((item) => {
        Object.keys(item).forEach((k) => {
          if (!this[`${k}Map`]) {
            this[`${k}Map`] = {};
          }
          this[`${k}Map`][item[k]] = item;
          this[item[k]] = item;
        });
      });
    }
}

data.js 常量文件

const STATUS_LIST = [
  {
    value: "stop",
    label:"暂停",
    id:2,
  },
  {
    value:'start',
    id:1,
    label:'开始',
  }
]

export default {
  STATUS_LIST
}

使用的vue 文件

<template>
    <div>
<!--        <div>{{testInfo}}</div>-->
        <p>{{status}}</p>
    </div>
</template>

<script>
    import { Enum } from '../common/Enum'
    import testData from '../dataBase/data.js'
  export default {
    data(){
      return {
        status:new Enum(testData.STATUS_LIST),
        testInfo:testData.STATUS_LIST
      }
    },
    name: "Enum"
  }
</script>

这样如果我们需要修改常量,只需要维护data.js文件就好

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章