Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- jQuery
- 항해99솔직후기
- 백준
- 로딩 후 실행
- 날씨 api
- 카테고리필터
- 알고리즘
- 부트캠프항해
- 배열 메소드
- 실전프로젝트
- 동전 0
- 중복선택
- 중복카테고리
- 항해99
- 그리디
- 항해99후기
- greedy
- 탐욕알고리즘
- server component
- 배열 중복 제거
- 자바스크립트
- 클라이언트 컴포넌트
- react
- 서버 컴포넌트
- 숫자를 별점으로
- JavaScript
- NextJS v13
- 프로그래머스
- db수정
- 항해99추천
Archives
- Today
- Total
공부 및 일상기록
[React] 제어 컴포넌트와 비제어 컴포넌트란 본문
제어 컴포넌트
제어 컴포넌트는 사용자의 입력을 기반으로 자신의 state를 관리하고 업데이트 한다.
React에서는 변경할 수 있는 state가 일반적으로 컴포넌트의 state속성에 유지되며 setState()에 의해 업데이트 된다.
즉 폼 엘리먼트를 리액트가 제어하는 방식으로 제어 컴포넌트가 동작한다.
1. 사용자가 input 엘리먼트에 값을 입력한다.
2. input 엘리먼트에 새로운 데이터가 입력될 때 마다 setState를 통해 미리 정의한 state를 변경한다.
3. input 엘리먼트의 밸류에는 변경된 state를 할당한다.
비제어 컴포넌트
비제어 컴포넌트는 ref를 통해 form 엘리먼트에 접근한다. 따라서 기존 바닐라자바스크립트와 비슷하다. 만약 submit을 하는 상황이라면 submit 할 때 실행되는 함수 내에서 ref를 통해 form 내 밸류들에 접근한다.
제어컴포넌트와 비제어 컴포넌트의 차이
가장 큰 차이점은 동기화 이다. 제어 컴포넌트는 사용자가 입력할 때마다 state가 동기화 된다. 따라서 input의 유효성 검사를 할 때 제어 컴포넌트가 용이하다.
반면 비제어 컴포넌트는 버튼을 누르는 최종 상황에만 밸류에 접근하므로 리렌더링이 계속 발생하진 않는다. 그만큼 비제어 컴포넌트는 사용자 입력의 가장 최신값에 접근하기 힘들다.
'개발 > React' 카테고리의 다른 글
[React] promise와 async await의 비교 (0) | 2023.01.05 |
---|---|
[React] PureComponent란? (0) | 2023.01.05 |
[React] 컴포넌트 생성법 (0) | 2023.01.05 |
[React] Element 와 Component의 차이점 (0) | 2023.01.05 |
[React] 함수형 컴포넌트에서 라이프사이클 관리 (0) | 2023.01.05 |