작성
·
106
0
1.setCommentFormOpened(prev => !prev);
=> prev는 정해진 이름인가요? 예를들어 kimch 이런식으로 이름을 지어줘도 괜찮나요?
2. !me
=> me가 null 이면 !me 라고 생각해도 될까요?
3. useCallback()
=> 정확히 잘 모르겠습니다.
"- useCallback으로 감싸는 함수기준은 자식 컴포넌트에 넘겨주는 함수는 무조건 감싸준다고 보면됨 " 으로 제가 정리해두기는 했지만 .. 넘겨준다는게 무슨 뜻인가요?
다른 컴포넌트에서 cosnt name => ({component})=>{}이런식으로
({component}) << 이 부분에 들어갈수있는 모든것들은 useCallback()로 감싸주어야하나요?
4. useCallback()
=> 뒤에 .[] << 이부분의 정확한 용도가 무엇일까요? useEffect()의 .[] 처럼 대괄호 안에있는 변수나 조건등등이 바뀔때마다 렌더링된다로 이해하면 될까요?
마지막으로 긴 글 읽어주셔서 감사합니당!
답변 2
1
1. 이름은 마음대로 바꾸셔도 됩니다.
2. me가 null인 경우에는 !me가 true가 되겠죠?
3. jsx에 들어가는 함수인 경우에 useCallback으로 감싸주셔야 합니다. <button onClick={onClick}>처럼 jsx에 들어가는 onClick에요.
4. 감싸주지 않으면 onClick 함수가 리렌더링 시마다 새로 만들어집니다. 함수를 새로 만드는 것은 낭비입니다. 새로 만들어지는 것을 막기 위해서 []를 사용하는 거고, 새로 만들어주어야 하는 특별한 경우가 생기는데(useCallback에서 사용하는 state가 바뀐다거나) 그럴 때 새로 만드는 기준이 될 state를 배열 안에 넣어줍니다.
0