- 내용 : wanted 웹페이지 클론코딩 프로젝트
- 기간 : 2022.06.07 ~ 06.17
- 인원 : 총 6명 (프론트엔드: 4명, 백엔드: 2명)
- 구현 기능
- Nav, Footer, 메인페이지
- 소셜 로그인 페이지
- 마이페이지 / 이력서페이지 / 좋아요페이지
- 채용 공고 리스트 / 채용 상세 페이지
- 검색바 / 검색 결과
- HTML5, CSS3(styled component), JavaScript, React
- github, slack, trello
-
채용공고리스트
-
검색바/검색결과페이지
- 검색 모달 창 및 검색 결과 페이지 구현
- useLocation을 활용, 검색 모달창에 입력한 내용을 백엔드 엔드포인트로 전달
- 검색 결과 페이지에서 좋아요 버튼 클릭 시 해당 내용 서버로 전달 (데이터 좋아요 페이지 연동)
- 각 아이템 클릭 시 채용상세페이지로 이동
- 로그인 토큰 획득 👉
useEffect
훅을 사용하여Login useState
값 true로 변환 (로그인이 활성화를 표현하기 위해서) - 조건부 랜더링을 통한
로그아웃
텍스트 표출 - 로그아웃 클릭 시
removeItem
을 활용하여 토큰 제거 &Login useState
값 false로 변환
- 햄버거바 클릭 시
useState
를 활용하여dropmenu
값 true로 변환 👉 조건부 렌더링을 통한 dropmenu를 모달창으로 표현 onMouseEnter
를 통하여 1차 dropmenu에 마우스 커서를 올리면 해당 id값을 이용하여 2차 dropmenu 화면에 표현- dropmenu 외부 클릭 시 dropmenu 제거 👉 window 객체에 접근하여 브라우저 클릭 시
closeDropMenu
함수 실행 👉dropMenu
값이 true인 상태에서 햄버거바 이외 클릭 시setDropMenu
값을 false로 변환
- 서버에서 받아온 사용자의 정보 및 사용자가 지원한 회사 지원 정보 데이터를 받아 페이지로 표출
- 변하지 않는 텍스트와 지속적으로 변경되는 데이터를 구분하여 페이지 구현
- 사용자 지원 현황 정보에 대한
filter
메소드를 통하여 수치를 지원 요약 현황판으로 표출
- 사용자가 지원하기 페이지에서 첨부한 이력서를 서버로부터 받아
userFile
에 저장 - map 메소드를 활용하여
userFile
에 저장된 파일 하나씩 카드 형태의 이력서 파일을 표현
- 이력서 삭제 버튼 클릭 시
fileDelete
함수 실행 👉 서버로method: 'DELETE'
를 요청 👉 이력서 파일 삭제 완료
file-saver
라이브러리를 사용하여 사용자가 다운로드 버튼 클릭 시 파일 제목으로 된 파일을 다운로드
- input 태그의
type="file
을 통하여 사용자가 업로드 하고자 하는 파일에 접근 👉userFile
에 저장