先說結論。看情況!!!!
- 前端 主要用 JS/TS 建議后端返回
camelCase
,減少前端轉換成本。 - 后端 主要是 Python/Go 建議保持
snake_case
,前端做轉換。 - 但是團隊統一風格最重要!如果統一返回駝峰就駝峰,統一下劃線那就下劃線。
建議統一使用駝峰(camelCase)的情況
適用情況:
-
前端(Vue/React)使用 JavaScript/TypeScript:
JavaScript/TypeScript
代碼風格通常使用 駝峰命名,如果后端返回的是 下劃線命名(snake_case),前端需要額外轉換,增加維護成本。- 例如:
在前端可以直接{"userName": "張三","orderList": [] }
user.userName
訪問,不需要轉換。
-
團隊約定統一風格:
- 如果團隊約定所有數據(前后端)都使用駝峰,則后端可以提前轉換,保證一致性,減少前端適配工作。
后端轉換方式(Node.js 示例)
- 如果數據庫字段使用
snake_case
,可以在返回數據時轉換:const toCamelCase = (obj) => {if (Array.isArray(obj)) {return obj.map(toCamelCase);} else if (obj !== null && typeof obj === 'object') {return Object.keys(obj).reduce((acc, key) => {const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());acc[camelKey] = toCamelCase(obj[key]);return acc;}, {});}return obj; };// 示例: const dbData = { user_name: "張三", order_list: [] }; console.log(toCamelCase(dbData)); // { userName: "張三", orderList: [] }
不轉換,前端自己適配情況
適用情況:
-
后端數據庫、API 規范統一使用
snake_case
:- 例如后端是 Python(Django、Flask)、Go,通常 API 返回
snake_case
,如果強行改為camelCase
,可能會違背語言習慣
。 - 例如:
{"user_name": "張三","order_list": [] }
- 前端可以在請求攔截器中轉換:
const toCamelCase = (obj) => { /* 同上 */ };axios.interceptors.response.use((response) => {response.data = toCamelCase(response.data);return response; });
- 例如后端是 Python(Django、Flask)、Go,通常 API 返回
-
數據庫字段嚴格要求 snake_case:
- 有些公司數據庫規范是
snake_case
,直接轉換可能會影響ORM
的映射,造成數據一致性問題
。
- 有些公司數據庫規范是
🎯 結論
- 前端主要用 JS/TS 建議后端返回
camelCase
,減少前端轉換成本。 - 后端主要是 Python/Go 建議保持
snake_case
,前端做轉換。 - 團隊統一風格最重要,如果后端已經全部
snake_case
,前端可以通過axios
統一轉換。