这块代码是不是多余了?

发布于 2022-09-12 22:15:58 字数 2760 浏览 12 评论 0

大家帮我确定下,红框内容是不是多余了,能否安全删除?
image.png
代码如下:

import request from '@/plugin/axios'
import qs from 'qs'
// import store from '@/store/index'
const store = require('@/store/index')
let commonData = {
  loginType: 'R',
  mchannelId: 'PIBS',
  deviceType: 'PC' // 设备号
}
export function httpGet(url, params = {}) {
  commonData = {
    ...commonData
  }
  let obj = {}
  if (params.transCode) {
    obj = {
      transCode: params.transCode
    }
  }
  return request({
    url,
    method: 'get',
    params: {
      ...params,
      ...commonData,
      ...obj
    }
  })
}

export function httpPost(url, data = {}) {
  let obj = {}
  if (data.transCode) {
    obj = {
      transCode: data.transCode
    }
  }
  return request({
    url,
    method: 'post',
    headers: {
      'Content-Type': 'application/json; charset=utf-8',
      ...commonData
    },
    data: {
      ...data,
      ...commonData,
      ...obj
    },
    transformRequest: [
      function (data) {
        return JSON.stringify(data)
      }
    ]
  })
}

export function httpForm(url, data = {}) {
  let obj = {}
  if (data.transCode) {
    obj = {
      transCode: data.transCode
    }
  }
  return request({
    url,
    method: 'post',
    headers: {
      'Content-Type': 'application/json; charset=utf-8',
      ...commonData
    },
    data: {
      ...data,
      ...commonData,
      ...obj
    },
    transformRequest: [
      function (data) {
        return JSON.stringify(data)
      }
    ]
  })
}

export function httpFormConfirm(url, data = {}) {
  let obj = {}
  if (data.transCode) {
    obj = {
      transCode: data.transCode
    }
  }
  return request({
    url,
    method: 'post',
    headers: {
      'Content-Type': 'application/json; charset=utf-8',
      trsType: 'confirm',
      ...commonData
    },
    data: {
      ...data,
      ...commonData,
      ...obj
    },
    transformRequest: [
      function (data) {
        return JSON.stringify(data)
      }
    ]
  })
}

export function download(url, data = {}) {
  return request({
    url,
    method: 'post',
    responseType: 'blob',
    data: {
      ...commonData,
      ...data
    },
    transformRequest: [
      function (data) {
        data = qs.stringify(data)
        return data
      }
    ]
  })
}
export function getDownload(url, params) {
  commonData = {
    ...commonData,
    ...params
  }
  return request({
    url,
    method: 'get',
    responseType: 'blob',
    params: {
      ...params,
      ...commonData
    }
    /* transformRequest: [function (data) {
          data = qs.stringify(data)
          return data
        }] */
  })
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

话少情深 2022-09-19 22:15:58

是否多余要看commonData对象里是否也有transCode属性。
看代码表达意图:

  1. commonData对象补充传入的对象params/data
  2. 如果传入的对象有transCode属性,则不要commonData里的同名属性覆盖。
琉璃繁缕 2022-09-19 22:15:58

和这个同理,某种意义上来说,并没有多余

request({
  data: {
    ...data,
    ...commonData,

    // 这里可能为空,看代码的意思,如果为空,是不需要提交这个字段的
    // 一般的请求库,空值给个null,会自动过滤掉,如果这个自己写的一个库,可能提交时,没对data做空值过滤
    // 后端有时候会通过前端有没有传这个值,来判断是否需要修改数据库对应的数据
    // 而且有这个键值,会覆盖前面解构的同名键值
    transCode: params.transCode || null
  }
})
逐鹿 2022-09-19 22:15:58

是多余了,params和data的解构已经包含transCode了,obj赋值再解构transCode完全没必要

伴梦长久 2022-09-19 22:15:58

感觉多余了,个人不能理解这样的意义
data = { transCode: null }, obj = {} // 解构的值 { transCode: null }
data = { transCode: 1 }, obj = { transCode: 1 } // 解构的值 { transCode: 1 }
data = { transCode: {} }, obj = { transCode: {} } // 解构的值 { transCode: {} }

常见的操作不是补充默认值之类的吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文