이번 프로젝트에서는 tailwind 를 쓰기로 했는데 확실히 본격적으로 쓰다보니 단점이 보이기 시작했다
이번에 내가 구현하기로 한 기능은 로그인/회원가입인데 input 들의 유효성 검사를 react-hook-form 라이브러리를 사용해 구현하기로 정했다
라이브러리는 아직 사용하지 않았는데 문제가 된 건 tailwind 에서 checkbox, radio 타입의 스타일이었다
보통 checkbox, radio 는 스타일링을 초기화하고 다른 스타일을 가져오거나 display: none 을 처리하여 span 으로 구현한다
그런데 tailwind 는 해당 라이브러리에서 지정해준 클래스이름으로 className 에 작성하여 스타일링을 하다보니 관계연산자로 위의 방식대로 구현하기가 힘들다
그래서 tailwind 에도 peer 라는 기능이 있는데 클래스이름으로 input 에 'peer/이름' 을 지정해놓고 peer 를 지정해준 input 에 checked 될 때를 스타일을 지정해줄 span 에 클래스이름으로 'peer-checked/이름: 스타일클래스이름' 이렇게 지정해주면 된다고 한다
그런데 해당 기능말고 다른 기능이 있는지 모르겠지만 input 과 형제 요소로 있는 span 이 아니면 적용이 안 된다는 문제가 있었다
나는 이미지 파일로 하지 않고 css 로 그려서 checked 된 상태와 안 된 상태를 처리해주고 싶었다
사실 이미지 파일로 했다면 그냥 input 을 display: none 처리해주고 span 에 checked 된 상태와 안 된 상태를 처리해줬으면 됐지만 나는 css 로 그려서 하려고 했기 때문에 적용하지 못했다
이 문제로 계속 골머리를 앓다가 결국 span 으로 하지 않고 가상선택자인 after 를 활용하여 check 될 때를 설정해주었다
2/15
📝할 일
미니 프로젝트 : 마크업
✅한 일
미니 프로젝트 : 마크업
어제부로 로그인/회원가입 페이지 마크업이 끝나서 회원가입 후 해당 회원의 추천상품에 대한 설문조사를 하기 위한 페이지를 마크업했다
servey 페이지로 하나 정해주고 각 설문 사항에 대해 framer-motion 으로 다음으로 넘어가면 슬라이드 되도록 해주고 싶었다
그런데 저번에 컴포넌트 슬라이드를 했을 때 다음 버튼과 이전 버튼을 각각 눌렀을 때 씹혔던 현상이 나타나서 다른 팀원에게 물어봤더니 display 로 씹히는 현상이 보이지 않게 처리를 해줬다고 하는 것이다
조금 어색하긴 하지만 그냥 이 정도에도 만족하기로 했다
아무래도 framer-motion 이라는 라이브러리도 사람이 만들었기 때문에 오류가 있는 건 어쩔 수 없어서 이런 점이 참 아쉽다
2/18
📝할 일
미니 프로젝트 : 설문조사 페이지와 회원가입 완료 페이지 마크업, 설문조사 결과 로직 작성
✅한 일
미니 프로젝트 : 설문조사 페이지와 회원가입 완료 페이지 마크업, 설문조사 결과 로직 작성
설이라 어제 본가에 내려와서 하루죙일 쉬고 오늘부터 배포페이지에 나오지 않는 상세페이지를 다시 작업했다
왜 자꾸 localStorage 가 undefined 로 저장이 되는지 테스트하기 위해 화면에 출력되는 과정에서 오류가 있는 건가 싶어서 정보를 출력시키는 컴포넌트들을 모두 주석처리도 해보고, 정보가 잘 들어오지 않는 건가 싶어서 로컬 스토리지에 저장하지 않고 useEffect 로 api 를 호출하여 state 에 저장해서 컴포넌트를 출력시켜 보기도 했다