vue中如何定义对象才能使项目更好维护

业务场景:

1、项目重构,后端不规范无法给出接口的参数。通过控制台查看请求提交的表单数据时,发现有上百个键值对。检查发现是由于初始化数据时把接口返回的所有数据都解构到了表单项中,导致项目重构陷入了困境。

2、在进行迭代时,子组件接收到一个对象类型的 prop,需要递归查看所有父组件和该状态相关的逻辑才知道这个对象包含哪些字段

已知实现方案和优劣:

1、(可选)js 对象初始化规范

  • 在 compositionAPI 中,只允许使用 reactive 初始化对象。
    • reactive 初始化的对象必须定义所有需要响应的键,可以显性的声明对象包含的键有哪些
  • 使用 Object.keys(reactiveObj) 遍历对象进行赋值
    • 遍历原有对象进行赋值可以保证没有额外的键存在对象中
// arg 用于声明哪些键是变量
const initMallAndStore = (
  arg = {
    // 商场组织号
    orgNo: '',
    // 商场名称
    orgName: '',
    // 商场简称
    orgSimpleName: '',
    // 门店编码
    shopNo: '',
    // 门店名称
    shopName: '',
    orgId: '',
    shopId: ''
  }
) => {
  return {
    ...arg,
    // 收货人
    receiver: '物流部',
    // 收货电话
    receiverTel: '020-88888888'
  }
}
const mallAndStore = reactive(initMallAndStore())
// 获取数据 res,通过 Object.keys 遍历塞入获取的数据
Object.keys(mallAndStore).forEach((key) => {
  mallAndStore[key] = res[key]
})

2、(可选)ts

  • 优点:
    • 强类型
  • 缺点:
    • 单文件组件需要插件提供支持
    • 增加开发成本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值