我有一个django API,它使用snake_cased
json描述资源。我还有一个使用API的React应用程序。我可以在不同的位置映射蛇形属性,例如,在API渲染器中,或在组件级别。
是否有关于在何处应用此转换的最佳做法?
答案 0 :(得分:1)
您可以围绕所使用的API函数构建包装器。使用像humps这样的帮助程序库来转换请求和响应有效负载。尽量保持尽可能接近API调用。
导入{camelizeKeys,decamelizeKeys}来自' humps';
$.post("/postendpoint",
decamelizeKeys({
fooBar: "zoo",
}),
function (data, status) {
doSomething(camelizeKeys(data));
}
);
答案 1 :(得分:1)
在客户端API级别执行此操作可使组件的状态更清晰,并且与在多个组件中应用转换相比,需要更少的迭代/函数调用。 因为这可能会导致不必要的渲染,因为React组件默认渲染(每次道具或状态都发生变化)。
然后你也可以在你的顶级组件处理它,并确保shouldComponentUpdate
没有发生不必要的渲染,但这感觉很麻烦。
TL; DR 让转换的API数据流入您的组件,以避免混淆代码和不必要的重新呈现