将蛇壳 API 响应转换为 javascript 的驼峰壳属性的最佳位置在哪里



我有一个DJANGO API,它使用snake_cased JSON描述资源。我还有一个消耗API的React应用程序。我可以在不同位置,EX,API渲染器或组件级别中映射基于Snakecec的属性。

在哪里应用此转换有最佳实践吗?

您可以围绕消耗的API函数构建包装器。使用像驼峰这样的辅助库来转换请求和响应有效载荷。尝试使其尽可能接近API调用。

import {camelizekeys,decamelizekeys}从'humps'';

$.post("/postendpoint",
    decamelizeKeys({
        fooBar: "zoo",
    }),
    function (data, status) {
        doSomething(camelizeKeys(data));
    }
);

在客户端API级别进行操作,可以使您的组件保持状态清洁器,并且需要更少的迭代/功能调用,而不是说将转换应用于多个组件。因为这可能会导致不必要的渲染,因为默认情况下的反应组件呈现方式(每次prop或状态都发生了变化)。

然后,您也可以在顶级组件上处理它,并确保使用shouldComponentUpdate,不会发生不必要的渲染,但这感觉很混乱。

tl; dr 让转换后的API数据向下滴入您的组件,以避免混淆代码和不必要的重新渲染

最新更新