Frontory

코드 편집 · 실습 · 필기 열기 →

React · 17 단위별 상태 보존

시리즈 목차 · 전체 기술 지도

단계: 필기 보존과 렌더 측정 · 편집 가능한 예제 · 저장 ID: react-step-17

목표와 학습 후 역량

선수 지식

17단위는 16단위 결과물과 실험 기록을 이어 사용합니다.

핵심 개념과 설명

트리 정체성

같은 위치의 같은 컴포넌트는 상태를 보존합니다. key를 바꾸면 새 컴포넌트로 취급해 로컬 상태가 초기화됩니다.

영속 초안

사라지는 에디터보다 오래 살아야 하는 데이터는 상위 저장소가 소유합니다. 커서 위치 같은 임시 UI 상태는 에디터에 남길 수 있습니다.

실습 준비

예제 화면의 실행 범위 안내를 먼저 확인하세요. 다음은 과제를 별도 프로젝트로 확장할 때의 준비 환경입니다. 별도 React Vite 프로젝트의 JSX 실습입니다. Node와 패키지 버전·lockfile을 기록하고 프로젝트 개발 서버에서 실행하세요. 내장 편집기는 범용 JSX 컴파일러가 아닙니다.

연결된 예제는 출발점입니다. 아래 과제 전체가 완성된 코드는 아니며, 예제의 지원 범위를 넘는 작업은 별도 프로젝트에서 수행하세요.

실습 과제

  1. src/NoteEditor.jsx에 단위 key와 로컬 커서 표시를 추가하세요.
  2. App의 draftsById에 실제 문자열을 저장하세요.
  3. A 입력→B 입력→A 복귀 후 문자열과 로컬 상태의 차이를 기록하세요.

관찰할 변수

변수기준 조건바꿀 조건예상할 변화·검증 가설
에디터 key고정unitId로컬 UI는 초기화되지만 상위 초안은 보존된다.

표의 예상은 측정 결과가 아닙니다. 한 번에 한 조건만 바꾸고 실제 결과가 다르면 원인을 기록하세요.

완료 조건

자가 점검

  1. 초안을 로컬 상태로만 두면 전환 때 무엇이 사라지나요?
  2. key를 바꿔야 하는 요구와 유지해야 하는 요구는 무엇인가요?

공식 참고

연결된 예제와 실행 범위

예제 원본 · 실행 환경과 제한

실제 React API 실험입니다. JSX 대신 createElement를 사용합니다.

원본 코드·기록은 자동으로 덮어쓰지 않습니다. 기존 예제를 초기화할 때도 필기는 유지됩니다.

다음 학습

이전: 필기 저장과 초기 복원 · 다음: 컴포넌트 합성과 children

실험 기록 — 직접 작성

목표

핵심 개념

바꾼 변수와 예상

실제 결과

배운 점

남은 질문

코드 편집 · 실습 · 필기 열기 →