后端定义的接口,字段名称是下划线分隔命名的,前端代码里怎么处理?直接用下划线分隔的名称吗?

2025 年 3 月 21 日
 inSpring

前端项目会出现一堆下划线命名的变量吗?

1712 次点击
所在节点    前端开发
8 条回复
dumbass
2025 年 3 月 21 日
用第三方库根据 swagger 生成类型,所以后端怎么写,我就怎么用。
ala2008
2025 年 3 月 21 日
看微博 api 就是下划线,好像不少大厂也是这样啊
IvanLi127
2025 年 3 月 21 日
直接用有啥问题嘛?不想转就直接用呗,其他地方也用下划线就风格统一了。不想统一的话,IDE 的代码提示加持,用起来也不会有啥问题。
donaldturinglee
2025 年 3 月 21 日
你前端不想用下划线就用驼峰命名。保持风格统一就行
dcsuibian
2025 年 3 月 21 日
肯定会啊,你接口都这么返回了,不这么拿还能怎么办。除非你再弄个统一请求库转换一下
seanlin5
2025 年 3 月 21 日
不建议自己再转换一套,理想状态下就是 API 端返回什么数据结果,我们就怎么用(无法用的让后端转下结构),这样联调起来也很舒服,前端也不需要写一大堆的 format 去洗数据,拿来即用,后期出现 bug 还容易排查
fernandoxu
2025 年 4 月 15 日
不光下划线问题,还有同样的字段前后端用的单词翻译不一样,后端还偶尔有拼写错误,无解啊😄
beidounanxizi
2025 年 6 月 4 日
有 middleware

pnpm add axios-case-converter


import applyCaseMiddleware from "axios-case-converter";
import { getAK, rmAK, setAK } from "./auth.js";

// kebab 和 camel 转换
const instance = applyCaseMiddleware(
Axios.create({
baseURL: import.meta.env.VITE_HTTP_BASE_URL,
timeout: import.meta.env.VITE_HTTP_TIMEOUT,
headers: { "Content-Type": "application/json;charset=utf-8" },
}),
);

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1120081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX