23.07.20
오늘은 팀프로젝트 css를 하다가 새로 배운 내용 2가지가 있음
css를 하다보면 px, vh, %, rem 등 다양한 단위? 들이 있는데 잘 몰라서 항상 px과 %만 쓰곤 했음
오늘은 페이지 전체 배경색이 특정 색으로 나오게하려고 제일 상위 요소에 background-color를 입히고 그 아래 요소에는 height값을 아래처럼 주었음
heigth: 100%
하지만 내가 원하는 상태로 변하지 않았음
그러다 팀원분의 100vh로 값을 변경해보라는 말씀에 %와 vh의 차이가 궁금해졌다
그리고 엄청난 걸 깨달았다 !!!!
=> 즉, height: 100%는 부모 요소에 의존하므로 부모 요소에도 height이 설정되어 있어야 의미가 있지만, height: 100vh는 부모 요소에 의존하지 않고 전체 화면 기준이므로 상관없이 사용 가능함 !!!
react-router 에서 컴포넌트 ? 또는 페이지 이동에는 주로 Link와 useNavigate를 사용함
역할은 비슷하지만 언제 사용하면 더 효율적인지 알아봤다
참고로 둘 다 npm install react-router-dom or yarn add react-router-dom 라이브러리 설치가 필요함
<a> 태그<Link to="/">홈으로 돌아가기</Link>
<a> 태그를 만들지 않고, 코드로 페이지 이동import { useNavigate } from "react-router-dom";
const navigate = useNavigate();
onClick={ () => { alert("메인으로 이동합니다.");
navigate("/"); }}
<Navigate to="<이동하려는 페이지>" />;
<Link to="https://github.com/huizhenz">
<button>깃허브</button>
</Link>
위처럼 Link를 사용하면 저 주소로 잘 이동함
<Navigate to="https://github.com/huizhenz">
<button>깃허브</button>
</Navigate>
근데 이렇게 Navigate 컴포넌트를 사용하면 기존 도메인과 저 도메인이 합쳐져서 이동이 되지 않음 ...
=> 아 근데 지금 쓰다보면서 깨달은 건데 Link는 <a> 태그라 하이퍼링크 역할을 하기 때문에 아예 페이지 이동이 되는데 Navigate는 기본적으로 컴포넌트이면서 react-router-dom 라이브러리이기 때문에 컴포넌트 내에서만 페이지 가능해서 그런건가 ...?
=> 맞다고 한다 !!! Navigate 컴포넌트는 절대 경로를 지원하지 않고 절대 경로를 사용하려면 Link 컴포넌트를 사용하면 된다고 함 ~
Link를 text에 걸다보면 Link는 <a> 태그의 역할을 하기 때문에 text에 밑줄이 생김
그래서 밑줄을 없애려고 text-decoration: none을 해보았지만 적용되지 않았다
알고보니 Link는 컴포넌트라 css 셀렉터(= 선택자)로 변경이 되지 않는다고 한다
그래서 결국엔 Link를 text에 걸지않고 button에 걸고 button의 디폴트 스타일들을 없애주는 식으로 함
background-color : transparent
border : none
근데 사실 왜 text에 건 Link는 css가 먹히지 않는데 button에 건 Link는 먹히는지 모르겠다 ...🫠
찾아보고 써봐야겠다 ...