programing

reactjs에서 소품은 값으로 통과합니까, 아니면 참조로 통과합니까?

skycolor 2023. 4. 2. 10:09
반응형

reactjs에서 소품은 값으로 통과합니까, 아니면 참조로 통과합니까?

내가 알기로는 부모 컴포넌트 상태를 자녀에게 전달하면 그 자녀는 부모의 라이브 상태를 얻을 수 있습니다.

부모의 상태에 대한 변화는 아이가 태어난 소품을 통해서도 즉시 이용할 수 있습니다.

이거 맞는건가요?

기본적으로 언어상의 다른 곳과 동일한 메커니즘입니다. 예상대로입니다.원시 요소는 값으로 전달되고 원시 요소가 아닌 변수는 참조로 전달됩니다.

React는 소품 업데이트를 내부적으로 신경써서 아이들이 소품에서 항상 최신 가치를 가질 수 있도록 합니다.

소품에 새로운 가치를 부여받았을 때 호출되는 라이프 사이클 방식입니다.

단, 도입되어 있는 인프라스트럭처와 React에 의해 제공되는 노출된 API는 존중해야 합니다.

간단한 답변: 소품은 참조로 전달됩니다.

부모 상태를 수동으로 변경하면(bad practice!) 자식 구성 요소에서도 개체가 변경되기 때문에 혼란스러울 수 있습니다.그러나 재렌더는 트리거되지 않습니다!(자녀 구성요소는 소품이 변경되었음을 "인식"하지 않습니다.)따라서 UI가 변경되지 않습니다.

, 부모 를 '바꾸다'로 setState(우선되는 관행), 자녀에게 스스로 재교육해야 한다는 통지를 받게 됩니다.

컴포넌트 상태를 소품으로 자녀에게 물려주면 부모 컴포넌트 상태가 변경되면 자녀도 새로 고쳐진 속성으로 다시 렌더링됩니다.아이들은 부모처럼 상태 변화에 직접 귀를 기울이는 것이 아니라 부모 상태 변화와 업데이트의 결과로 재교육될 뿐이다.

https://facebook.github.io/react/docs/multiple-components.html 를 참조해 주세요.이 컨셉이 어떻게 작동하는지 이해하는데 도움이 될 것입니다.이게 도움이 됐으면 좋겠네요!

컴포넌트의 상태가 변경되면 React에 의해 컴포넌트가 재렌더됩니다.그 사이에 자성분도 재렌더되어 자성분도 변경됩니다.

아니요, 복제되지 않습니다. 참조를 통해 이러한 소품에 액세스할 수 있습니다. 왜냐하면 소품들은 정의된 단일 객체에서 나와 하위 객체에 대한 참조로 전달되기 때문입니다.

공식 매뉴얼은 https://reactjs.org/docs/react-component.html 에서 보실 수 있습니다.

특히 공유되는 경우 대용량 데이터를 처리하기 위해 상태 비저장 메커니즘을 사용하는 것이 좋습니다.개인적으로 mobx(https://github.com/mobxjs/mobx)는 상태 비저장 앱을 만들기 위한 훌륭한 프레임워크입니다.

이 방법을 사용하면 Store라고 불리는 단일 컴포넌트에서 데이터와 상태 업데이트를 처리할 수 있으며 컴포넌트를 사용하여 html만 렌더링할 수 있으며 데이터를 처리할 수 없습니다.이것에 의해, 애플리케이션의 퍼포먼스가 큰폭으로 향상됩니다.

언급URL : https://stackoverflow.com/questions/38037725/in-reactjs-are-props-pass-by-value-or-pass-by-reference

반응형