问答

这块代码是不是多余了?

作者:admin 2021-05-06 我要评论

大家帮我确定下,红框内容是不是多余了,能否安全删除? 代码如下: import request from '@/plugin/axios'import qs from 'qs'// import store from '@/store/i...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

大家帮我确定下,红框内容是不是多余了,能否安全删除?
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
        }] */
  })
}
###

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

  1. commonData对象补充传入的对象params/data
  2. 如果传入的对象有transCode属性,则不要commonData里的同名属性覆盖。
###

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

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

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

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

###

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

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  •  这块代码是不是多余了?

    这块代码是不是多余了?

  • js根据规则替换json中所有key值

    js根据规则替换json中所有key值

  • React.memo为什么不是默认行为?

    React.memo为什么不是默认行为?

  • 如何定义纯数字的字符串类型在TypeScri

    如何定义纯数字的字符串类型在TypeScri

腾讯云代理商
海外云服务器