선생님 리뷰 에디터의 input관련 질문드립니다.
선생님 review-editor.tsx 파일에서 기존 리액트와는 다른게 onChange나 value useState를 활용하여 input의 상태값을 따로 설정 안하는데 이건 왜 안하는걸까요? search-bar에서는 그렇게 동작하도록 한거 같은데 무슨 차이인지 설명좀 부탁드려도 될까요?! 여러 지식들이 이제 막 충돌하기 시작했습니다 ㅠㅠ
답변 2
0
안녕하세요 이정환입니다.
searcbar 컴포넌트에서만 특별히 useState를 이용해 입력값을 관리하는 이유는 해당 컴포넌트가 클라이언트 컴포넌트이기 때문입니다. (useState는 클라이언트 컴포넌트에서만 사용 가능합니다) 이 컴포넌트를 클라이언트 컴포넌트로 설정한 이유는 강의에서 말씀드렸듯 검색 버튼이 클릭되었을 때 페이지를 이동시키는 클라이언트 사이드의 액션이 필요하기 때문입니다.
반면 review-editor 컴포넌트는 서버 컴포넌트이기 때문에 useState 등의 Hook을 사용할 수 없습니다. 그렇다고 이 컴포넌트를 굳이 클라이언트 컴포넌트로 전환할 필요도 없기에 useState 대신에 Form을 사용해 입력 값을 관리하도록 설정한 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. uphoon님, 질문 주셔서 감사합니다.
리액트에서는 보통 useState를 사용해 input의 상태 값을 관리하고, onChange 이벤트를 통해 사용자 입력을 감지하여 상태를 갱신합니다. 하지만 특정 상황에서는 input의 상태관리가 필요하지 않을 수도 있습니다. 이를 테면, 단순히 입력 값을 다른 컴포넌트로 넘기거나 서버로 바로 전송할 경우에는 상태관리를 생략할 수 있습니다.
search-bar에서는 입력된 값을 즉시 다른 용도로 사용하거나, 페이지간 상태가 필요할 수 있기 때문에 상태 관리가 필요할 수 있습니다. 반면 review-editor.tsx 파일에서는 그와 같은 상태 관리가 필요 없는 로직일 가능성이 있습니다. 예를 들어 리뷰 작성 후 이를 바로 저장하거나 전송한다면 굳이 상태를 관리하지 않아도 될 수 있는 구조로 설계되었을 가능성이 있습니다.
이와 비슷한 주제를 다룬 몇 가지 기존 질문과 답변을 추천드립니다:
이 질문들에서 상태 관리 및 input 값 처리의 차이점에 대한 힌트를 얻으실 수 있을 것으로 보입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Next.js 사전렌더링 이해하기 부분
0
22
2
모달 관련 질문
0
32
3
렌더링 관련 질문
0
76
2
중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화
0
59
2
라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.
0
60
2
SSR시 context에 params말고 query를 사용하면 안되나요?
0
73
2
npx prisma db push 시 에러가 뜹니다.
0
91
3
vercel 배포를 실패하였습니다.
0
95
3
Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?
0
54
2
getServerSideProps 함수와 SSR의 관계
0
76
6
없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다
0
58
2
실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.
0
112
2
일반적인 nextjs project architecture에 대하여..
0
84
2
2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?
0
71
2
배포 시 오류 발생
0
84
2
백엔드 서버 오류납니다.
0
80
2
취약점 제거시 nestjs 버전 문제가 생길까요?
0
89
1
eslint.config.mjs 내 rules 어떻게 설정 하나요?
0
103
1
[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.
0
60
2
빨간줄 설정
0
74
2
익스텐션 질문
0
58
1
강의 들으면서 궁금한 부분 질문드립니다.
0
108
1
서버 배포 에러입니다.
1
98
2
[5.2) 풀라우트 캐시 2] fetch의 cache 옵션 기본값 질문: no-store/force-cache
1
102
2





