[TIL] 최종 프로젝트 4주 차_화요일

유진·2023년 2월 28일
0

TIL Today I Learned

목록 보기
84/116
post-thumbnail

2023.02.28.(화)

TIL Today I Learned
해당 깃허브


Good: 오류가 있다면 왜 있는지 확실히 알고 넘어간 것
Bad: 어렵다고 포기하다가 오뚜기처럼 다시 돌아왔다.


[ 최종 프로젝트 오류]

문제점: 첫 번째 이메일, 두 번째/ 세 번째 비밀번호, 마지막 닉네임이다. 닉네임을 적고 삭제 후 비밀번호 보이는 기능을 클릭하면 닉네임 살아 돌아온다.

//수정 전
 <EditInputBox>
            <SignUpEmailInput
              {...register('nickname', {
                required: '닉네임를 입력해주세요.',
                minLength: {
                  value: 2,
                  message: '2글자이상 입력해주세요.',
                },
              })}
              type="username"
              value={nickname}
              onChange={(event) => setNickname(event.target.value)}
              placeholder="닉네임을 입력해 주세요"
              onKeyUp={(e) => {
                if (e.key === 'Enter') {
                  handleSubmit(onSubmit);
                }
              }}
            />
            <EditclearBtn
              onClick={() => {
                setValue('nickname', '');
              }}
            ></EditclearBtn>

해결점: onChang 눌러서 ...register에 있는 닉네임은 삭제가 되었다. 하지만 value에 있는 정보는 그대로 있다. 가상 돔과 비교하여 남아 있는 정보를 보여준 것이다.
const [hidePassword, setHidePassword] = useState<boolean>(false);를 클릭하여 true로 바뀐다. 재렌더링 조건인 state가 바뀐 것이다.


[공부1]

  • 리액트가 가상돔을 반영하는 절차
    EX) 특정 페이지에서 데이터가 변했다고 가정 했을 경우.
    const [hidePassword, setHidePassword] = useState<boolean>(false);를 클릭하여 true로 바뀐 것.
  • 리액트를 이용해 돔을 업데이트 시키는 절차
  1. 데이터가 업데이트 되면, 전체 UI를 Virtual DOM에 리렌더링함
  2. 이전 Virtual DOM에 있던 내용과 현재의 내용을 비교함 (가상 돔 끼리 비교)
  3. 바뀐 부분만 실제 DOM에 적용이 됨
    (컴포넌트가 업데이트 될때 , 레이아웃 계산이 한번만 이뤄짐)

[공부2]

  • 리액트 재렌더링 조건
  1. state(상태) 변경이 있을 때 : 리액트 state 변경이 감지되면 재렌더링 한다.
  2. 새로운 Props가 들어올 때 : 부모 컴포넌트로부터 새 props가 들어오면 자식 컴포넌트는 재렌더링 된다.
  3. 기존 props가 업데이트 됐을 때 : 부모 컴포넌트로부터 받은 props가 변경되면 props 값을 받은 자식 컴포넌트도 재렌더링 된다.
  4. 부모 컴포넌트가 재렌더링 될 때 : 부모 컴포넌트가 업데이트 되어 재렌더링 되면 자식 컴포넌트도 재렌더링 된다.

[ 18주 차 계획 ]

- 스파르타코딩클럽 계획

✔ 월: 최종 프로젝트

✔ 화: 최종 프로젝트

□ 수: 최종 프로젝트

□ 목: 최종 프로젝트

□ 금: 최종 프로젝트

- 나의 계획

✔ 로그인 시 아이디 저장, 뒤로 가기 버튼 생성
□ 전역적으로 모달 창을 리코일로 관리하기

profile
긍정 🍋🌻

0개의 댓글