ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 풋볼러브 Front (12.29)
    JavaScript 2021. 12. 29. 16:24

    풋볼러브 Front (12.29)

     

    오늘 수행 작업 : 회원가입 페이지 리펙토링

     

    당근마켓 프론트 개발자 Nash 에게 코드리뷰를 받았는데, 내 코드의 문제점중 하나가 회원가입 페이지에서 onChange 이벤트로 input 값이 바뀔때마다 state 를 업데이트시켜서 joinData 를 최신화 시켰었는데, 문제는 이 방법이 비효율적이라는 것이다.

    그래서 Nash 는 Form 태그를 이용해서 굳이 state 를 사용할 필요 없이 간단하게 joinData 를 서버로 전송할 수 있는 방법을 알려줬고 이를 적용했다.

     

    const [newUserInfo, setNewUserInfo] = useState({
            id : null, 
            pwd : null,
            nickname : null,
            address:{
                city : '서울',
                street : '중랑구 망우로 173',
                zipcode: '10234'
            },
            lastName : null, // ok
            name : null, // ok
            brith : null, // ok 
            email : null, // ok
            phone : null, // ok
            type : 'NORMAL'
        })

    기존 코드에서는 위와같이 state 를 다 선언해서 input 값이 바뀔때마다 setstate 로 값을 최신화 시켜줬다면,

     

    새로운 코드에서는 

    const handleSubmit = (e) => {
            e.preventDefault();
            const data = { id :e.target.id.value,
                    pwd : e.target.pwd.value,
                    nickname: e.target.nickname.value,
                    address: {
                        city: '서울',
                        street: e.target.address.value,
                        zipcode: '122'},
                    name: e.target.name.value,
                    birth: e.target.birth.value,
                    email: e.target.email.value,
                    phone: e.target.phone.value,
                    type: 'NORMAL'
                }

    간단하게 form 태그에 이벤트 하나를 추가해서 처리해주었다.

     

    이렇게 바꿈으로써 코드의 불필요한 리랜더링을 하지 않게 되었으며, 

    mui 를 사용해 기존 input 태그를 대체시켜 코드의 양도 1/4 로 줄어들었다.

    'JavaScript' 카테고리의 다른 글

    풋볼러브 프론트 (1.10)  (0) 2022.01.10
    풋볼러브 프론트 (1.3)  (0) 2022.01.04
    풋볼러브 프론트 (12.28)  (0) 2021.12.29
    풋볼러브 Front (12.27)  (0) 2021.12.28
    12.27 FootBallLove 코드리뷰  (0) 2021.12.27
Designed by Tistory.