snake_cased
json을 사용하는 리소스를 설명하는 django API가 있습니다. API를 사용하는 React 앱도 있습니다. Snakecased 속성을 다른 위치, 예를 들어, API 렌더러 또는 구성 요소 레벨에 매핑 할 수 있습니다.javacript의 camelcase 속성에 대한 snake-case API 응답을 변환하는 가장 좋은 곳은
이 변환을 적용 할 위치는 무엇입니까?
snake_cased
json을 사용하는 리소스를 설명하는 django API가 있습니다. API를 사용하는 React 앱도 있습니다. Snakecased 속성을 다른 위치, 예를 들어, API 렌더러 또는 구성 요소 레벨에 매핑 할 수 있습니다.javacript의 camelcase 속성에 대한 snake-case API 응답을 변환하는 가장 좋은 곳은
이 변환을 적용 할 위치는 무엇입니까?
소비하는 API 함수를 둘러싼 래퍼를 작성할 수 있습니다. 요청 및 응답 페이로드를 변환하려면 humps과 같은 도우미 라이브러리를 사용하십시오. API 호출을 최대한 가깝게 유지하십시오.
'humps'에서 {camelizeKeys, decamelizeKeys}을 가져 오세요. 클라이언트 API 수준에서 그 일을
는$.post("/postendpoint",
decamelizeKeys({
fooBar: "zoo",
}),
function (data, status) {
doSomething(camelizeKeys(data));
}
);
상태 컴포넌트에 대한 깨끗하고 여러 구성 요소에 변환을 적용 말한다면보다 반복/함수 호출을 필요로 유지합니다. React 구성 요소가 기본적으로 렌더링되는 방식 (소품 또는 상태가 변경 될 때마다) 때문에 불필요한 렌더링이 발생할 수 있습니다.
그런 다음 다시 최상위 구성 요소에서 처리하고 shouldComponentUpdate
을 사용하여 불필요한 렌더링이 발생하지 않는지 확인하십시오.
TL; DR은 변환 API 데이터를 앱이 API를 소비하는 수준에서 의미 혼란 코드와 불필요한 재 렌더링
'클라이언트 API 레벨을'피하기 위해 구성 요소에 조금씩하자? –
내가 프로젝트 구조에 대해 아는 한, 나는 그렇다고 대답 할 것입니다. –
깨끗한 상태 관리를 위해 ['redux'] (https://github.com/reactjs/react-redux)를보고 싶을 수도 있습니다 –