TotalCounter을 작성할때
64
6 asked
저는 처음에 과제를 할때 setTotal을 직접 prop으로 내렸는데 handleTotal 을 만들어서 함수로 내려준 이유가 있을까요??
차이점과 장단점에 대해서가 궁금합니다.
import Counter from "./Counter";
import React, { useState } from "react";
function Main() {
const [Total, setTotal] = useState(0);
return (
<main>
<h2>Main Component</h2>
<h1>{Total}</h1>
<br />
<br />
<Counter Total={Total} setTotal={setTotal} />
<br />
<br />
<Counter Total={Total} setTotal={setTotal} />
</main>
);
}
export default Main;
Answer 2
0
안녕하세요 🙂
개인이나 팀의 컨벤션에 맞게 진행하시면 돼요!
취향차이 입니다.
추가로 로직이 복잡하다면 handleXX 과 같은 이벤트 핸들러를 정의해서 내리는게 좋아요~! 🙂
0
안녕하세요, 인프런 AI 인턴입니다. 조성경님!
리액트에서 setTotal을 props로 직접 전달하는 방식과 별도의 함수인 handleTotal을 props로 만들어 전달하는 방식에는 각기 다른 장단점이 존재합니다.
두 방식의 비교
setTotal을 직접 전달하는 방식- 장점: 코드가 간단합니다.
setTotal을 직접 컴포넌트에 넘기므로 별도의 함수를 만들 필요가 없습니다.
- 단점: 만약
setTotal을 사용하는 로직이 복잡하다면, 각 자식 컴포넌트에서 이 로직을 중복해서 작성해야 할 수 있습니다.
- 장점: 코드가 간단합니다.
handleTotal과 같은 처리함수를 만들어 전달하는 방식- 장점:
handleTotal함수를 중간에 두어 로직을 캡슐화할 수 있습니다. 예를 들어,setTotal로 total을 증가시킬 때 특정 조건을 추가하거나, 로그를 남기는 등의 부가 작업을 한 곳에서 관리할 수 있습니다.
- 단점: 간단한 이벤트 처리의 경우 오버헤드가 생길 수 있습니다.
- 장점:
결론
주로 코드를 깔끔하고 유지보수하기 쉽게 하고 싶은 경우에는 handleTotal과 같은 처리를 추가적으로 만들어 사용하는 것이 좋습니다. 특히, 처리가 필요한 수식이 많고 로직이 복잡한 경우 handleTotal으로 캡슐화하면 훨씬 더 쉽게 코드를 관리할 수 있습니다.
이에 대해 더 깊이 있는 내용이 궁금하시다면 다음 링크를 참고해 보세요:
- React에서의 상태 업데이트 최적화 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
오타?
0
26
1
뭐하나 여쭤봐도 될까요?
0
69
1
안녕하세요 질문이 있습니다.
0
55
2
질문 : 삭제 버튼 아규먼트 (id)
0
49
1
Tailwind 버전 확인
0
62
1
align-items 정렬
0
50
2
vite 명령어로 프로젝트를 만들었습니다. (vscode)
0
79
1
31. 객체 업데이트 하기 - 10:15 질문
1
55
2
강의교안, 내용 인용해서 블로그 글 작성
1
80
2
이미지가 출력되지 않아요
1
73
2
강의와 만들어진 코드가 달라요
0
75
3
AI와 CSS 라이브러리의 궁합
0
95
1
onClick 이벤트에 함수 넘길 때
0
64
1
린캔버스 기능 구현은 왜 못하나요.... 구현하고 싶습니다...
0
101
1
notes 없음 읽기 오류
0
72
1
Object.assign 문법
0
64
1
react-router 전혀 기능 안함
0
53
1
react-router-dom@6.25.1
0
47
1
React Router 최신 스펙
0
207
1
Immer 에서 filter, map 사용
0
54
1
vite 설치에 대해 질문있습니다.
0
76
2
라이브러리 버전 일치 이슈
0
75
1
"Enter 키 발생 시 항목 추가" 부분에서 공백이 포함되면 한 줄이 더 입력됩니다
0
48
2
gitHub 레파지토리 보면
-4
116
3

