React 컴포넌트 외부에 함수를 두는 것과 성능 차이가 있습니까?

에반스

작아 질 것이라는 것을 알고 있지만 React 컴포넌트 외부에 함수를 배치하면 성능 차이가 있습니까?

예 : 버전 1 :

const handleFetch = () => {
    // Make API call
}

const MyComponent = () => {
    useEffect(()=>{
        handleFetch();
    })
    return(<p>hi</p>)
}

Vs 버전 2 :

const MyComponent = () => {
    const handleFetch = () => {
        // Make API call
    }

    useEffect(()=>{
        handleFetch();
    })
    return(<p>hi</p>)
}

버전 1에서는 다시 렌더링 handleFetch할 때 MyComponent다시 생성되지 않습니까?

kmui2

React 컴포넌트 외부에 함수를두면 성능 차이가 있습니까?

예,하지만 구성 요소 내부에 함수를 정의하기로 결정하는 경우 눈에 띄는 성능 저하가 발생하지 않을 것입니다. 거의 항상 애플리케이션의 나머지 성능이 구성 요소에 함수를 넣는 비용을 가려줍니다. 일반적으로 함수 구성 요소에 정의 된 함수에 대한 React의 FAQ에서 인용했습니다.

렌더에서 함수를 생성하기 때문에 후크가 느립니까?

아니요. 최신 브라우저에서 클래스에 비해 클로저의 원시 성능은 극단적 인 시나리오를 제외하고는 크게 다르지 않습니다.

https://reactjs.org/docs/hooks-faq.html#are-hooks-slow-because-of-creating-functions-in-render

버전 1에서는 MyComponent가 다시 렌더링 될 때 handleFetch가 다시 생성되지 않습니까?

아니요, handleFetch기능 구성 요소 외부에 정의되어 있으므로 다시 생성되지 않습니다 . handleFetchMyComponent가 다시 렌더링 될 때 버전 2에서만 다시 생성됩니다.

또 다른 참고 : useCallback은 함수 재생성을 피하지 않습니다 (여전히 useCallback에도 새 함수를 전달 함).

일반적으로 구성 요소 내부에 함수를 정의한 다음 번거롭지 않거나 여러 구성 요소간에 재사용 할 수있는 경우 추출합니다. 때로는 추출 할 때 구성 요소에서 함수로 변수를 전달하기 위해 2 개 이상의 추가 매개 변수를 추가해야합니다. 그러나 기능 구성 요소 내부에두면 매개 변수가 필요하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

웹 컴포넌트를 다른 내부에 생성하고 다른 컴포넌트에 추가하는 것은 나쁜 습관입니까?

분류에서Dev

컴포넌트를 소품으로 Route에 전달하는 것과 렌더링 함수에서 컴포넌트를 래핑하는 것의 차이점

분류에서Dev

React 컴포넌트의 리턴 기능에서 외부 HTML을 설정할 수 있습니까?

분류에서Dev

React Hooks : 설정된 상태 함수를 자식 컴포넌트에 전달하는 것이 왜 나쁜 습관입니까?

분류에서Dev

React에서 어떤 유형의 컴포넌트를 사용해야합니까 : 기능 컴포넌트 또는 클래스 기본 컴포넌트?

분류에서Dev

React Navigation 부모 컴포넌트에서 네비게이터를 참조하는 방법이 있습니까?

분류에서Dev

React 컴포넌트에서 상태를 변경하지 않고 생성하는 것이 좋은 습관입니까?

분류에서Dev

컴포넌트 외부에서 AngularDart 컴포넌트 속성 (NgOneWay)에 액세스하는 방법 (예 : 페이지에 있습니까?

분류에서Dev

React 클래스 컴포넌트에서 변수를 생성 할 수없는 이유는 무엇입니까?

분류에서Dev

동적으로 생성 된 함수가있는 React 컴포넌트

분류에서Dev

컴포넌트 외부에서 recoilJS의 상태를 업데이트하는 방법이 있습니까?

분류에서Dev

React 컴포넌트를 테스트하기 전에 DOM을 모의하는 방법이 있습니까?

분류에서Dev

컴포넌트가 이미 열려있을 때 두 번째 클릭에서 React 컴포넌트를 숨기려면 어떻게해야합니까?

분류에서Dev

컴포넌트 내에서`React.createContext ()`를 호출하는 실용적인 방법이 있습니까?

분류에서Dev

React에서 함수 컴포넌트를 가져 오는 방법은 무엇입니까?

분류에서Dev

React : 컴포넌트 생성자가 하나 이상의 매개 변수를 가질 수 있습니까?

분류에서Dev

React 컴포넌트를 JSX로 내 보내야하는 이유가 있습니까? 아니면 JSX 및 다른 것들을 포함하는 객체로 내보낼 수 있습니까?

분류에서Dev

지역 변수를 호출하는 것과 객체의 인스턴스 변수를 호출하는 것 사이에 성능 차이가 있습니까?

분류에서Dev

React :이 부모 컴포넌트 참조를 자식 컴포넌트에 전달해야합니까?

분류에서Dev

컴포넌트 생성자에`@ Lazy`를 사용하는 것은 모든 인수에 주석을다는 것과 동일합니까?

분류에서Dev

React Native의 커스텀 컴포넌트 내부에 외부 변수를 설정하는 함수를 어떻게 호출 할 수 있나요?

분류에서Dev

JSoup과 ID에 포인트가있는 컴포넌트 선택

분류에서Dev

React 컴포넌트 Route에 어떤 문제가 있습니까?

분류에서Dev

React Native에서 컴포넌트 마운트 전에 호출 된 인수가있는 도우미 함수

분류에서Dev

React JS에서 부모 컴포넌트에게 자식에서 무슨 일이 일어 났는지 어떻게 알 수 있습니까?

분류에서Dev

React 컴포넌트에서 부울 상태를 분리 할 수 있습니까?

분류에서Dev

테스트 기능을 외부에서 컴포넌트로 가져 오는 방법은 무엇입니까?

분류에서Dev

React 컴포넌트의 고유 한 인스턴스가 Flux를 사용하여 비동기 작업의 결과에 어떻게 반응 할 수 있습니까?

분류에서Dev

반응. 컴포넌트 함수에서 함수를 가져올 때 후크 setState ..가 작동하지 않는 이유를 알 수 있습니까?

Related 관련 기사

  1. 1

    웹 컴포넌트를 다른 내부에 생성하고 다른 컴포넌트에 추가하는 것은 나쁜 습관입니까?

  2. 2

    컴포넌트를 소품으로 Route에 전달하는 것과 렌더링 함수에서 컴포넌트를 래핑하는 것의 차이점

  3. 3

    React 컴포넌트의 리턴 기능에서 외부 HTML을 설정할 수 있습니까?

  4. 4

    React Hooks : 설정된 상태 함수를 자식 컴포넌트에 전달하는 것이 왜 나쁜 습관입니까?

  5. 5

    React에서 어떤 유형의 컴포넌트를 사용해야합니까 : 기능 컴포넌트 또는 클래스 기본 컴포넌트?

  6. 6

    React Navigation 부모 컴포넌트에서 네비게이터를 참조하는 방법이 있습니까?

  7. 7

    React 컴포넌트에서 상태를 변경하지 않고 생성하는 것이 좋은 습관입니까?

  8. 8

    컴포넌트 외부에서 AngularDart 컴포넌트 속성 (NgOneWay)에 액세스하는 방법 (예 : 페이지에 있습니까?

  9. 9

    React 클래스 컴포넌트에서 변수를 생성 할 수없는 이유는 무엇입니까?

  10. 10

    동적으로 생성 된 함수가있는 React 컴포넌트

  11. 11

    컴포넌트 외부에서 recoilJS의 상태를 업데이트하는 방법이 있습니까?

  12. 12

    React 컴포넌트를 테스트하기 전에 DOM을 모의하는 방법이 있습니까?

  13. 13

    컴포넌트가 이미 열려있을 때 두 번째 클릭에서 React 컴포넌트를 숨기려면 어떻게해야합니까?

  14. 14

    컴포넌트 내에서`React.createContext ()`를 호출하는 실용적인 방법이 있습니까?

  15. 15

    React에서 함수 컴포넌트를 가져 오는 방법은 무엇입니까?

  16. 16

    React : 컴포넌트 생성자가 하나 이상의 매개 변수를 가질 수 있습니까?

  17. 17

    React 컴포넌트를 JSX로 내 보내야하는 이유가 있습니까? 아니면 JSX 및 다른 것들을 포함하는 객체로 내보낼 수 있습니까?

  18. 18

    지역 변수를 호출하는 것과 객체의 인스턴스 변수를 호출하는 것 사이에 성능 차이가 있습니까?

  19. 19

    React :이 부모 컴포넌트 참조를 자식 컴포넌트에 전달해야합니까?

  20. 20

    컴포넌트 생성자에`@ Lazy`를 사용하는 것은 모든 인수에 주석을다는 것과 동일합니까?

  21. 21

    React Native의 커스텀 컴포넌트 내부에 외부 변수를 설정하는 함수를 어떻게 호출 할 수 있나요?

  22. 22

    JSoup과 ID에 포인트가있는 컴포넌트 선택

  23. 23

    React 컴포넌트 Route에 어떤 문제가 있습니까?

  24. 24

    React Native에서 컴포넌트 마운트 전에 호출 된 인수가있는 도우미 함수

  25. 25

    React JS에서 부모 컴포넌트에게 자식에서 무슨 일이 일어 났는지 어떻게 알 수 있습니까?

  26. 26

    React 컴포넌트에서 부울 상태를 분리 할 수 있습니까?

  27. 27

    테스트 기능을 외부에서 컴포넌트로 가져 오는 방법은 무엇입니까?

  28. 28

    React 컴포넌트의 고유 한 인스턴스가 Flux를 사용하여 비동기 작업의 결과에 어떻게 반응 할 수 있습니까?

  29. 29

    반응. 컴포넌트 함수에서 함수를 가져올 때 후크 setState ..가 작동하지 않는 이유를 알 수 있습니까?

뜨겁다태그

보관