본격적으로 프로젝트가 시작되었다. 지금껏 만든 방식 그대로 Button을 한 개 만들어 볼 것이다.
자바스크립트에서는 애플리케이션을 실행하기 위해 한 파일에서 코드를 작성하기에는 너무 불편한 점이 많기에
하나의 파일을 여러개로 쪼개는 것이 가능한데, 그때 사용하는 것이 import와 export이다.
export를 붙인 모듈은 파일 외부에서도 import를 통해 사용할 수 있다. 두 파일의 오작교 같은 역할이다.
지금 위의 line5에서도 이 버튼을 외부에서 즉 index.js에서 사용하기 위해 적은 것이다.
비교적 되게 최근에 한 것들이 여러 보인다. Button.js에서 Button을 만들고 Button {text}에 들어갈 형식을
string으로 정해주는 propTypes를 npm i 를 통해 설치하고, 틀려도 표현해주도록 isRequired도 작성했다.
다만, 저번과 다른 점이 있다면 여러 파일로 분할해서 사용하고 있다는 점이다. 한 파일 내에서 버튼을 만들고 그걸 바로
파일 내에서 사용했다면 이번에는 button.js라는 button을 생성하고 propTypes를 설정하는 파일 자체를 제작한 것.
또한 기존의 방식과 다르게 css에 접근하는데
- .css파일을 만들어서 접근하는 방법, css파일 제작 후 index.js서 import "~. css" (너무 설정 범주가 넓다)
- js파일 내부에서 button 내부에 스타일을 걸어 적용 시키는 것 (분할 가능)
2번 방법에서 조금 변화를 주어 css파일을 만들지만, 분할가능하도록 해볼 것이다.
Button.module.css라는 css파일을 만든다. Button.js에서 import styles from"./Button.module.css"; 작성
ㄴ> .css이름앞에 module을 작성함으로 클래스의 중첩을 막을 수 있다.
button태그 앞의 className={styles.btn}을 작성해준다. 이럴 경우 html상에서 button은 btn이라는 클래스를 같지만,
클래스명은 랜덤함으로 우리가 btn의 스타일을 사용할 때 매번 클래스 명을 외우지 않고 분할해서 사용할 수 있다.
여기서도 확인할 수 있는 ReactApp 그리고 js의 특징은 각 파일 하나에 컴포넌트 하나를 배정해 모듈화가 가능하다는 것이다. 예전 class btn을 하고 모든 btn이 같은 속성을 갖고 독립화 하기 힘들었던 과거 와는 다르게 유연하게 작성이 가능해졌다.
'코딩 > REACT' 카테고리의 다른 글
~0523 cleanUp (0) | 2022.05.23 |
---|---|
~0519 useEffect (미루지말자 let's not procrastinate) (0) | 2022.05.22 |
~0513 React project시작 (0) | 2022.05.15 |
~0512 proptypes + Recap 준비완료오 (1) | 2022.05.13 |
~0509 React props 낙곱새 궁금해 (2) | 2022.05.10 |