#5.0~ 5.1
Node.js를 이용해서 create-react-app
을 만드는 방법을 공부해 볼거임
create-react-app
을 사용한다면 수많은 스트립트들과 많은 사전설정들을 React에서 준비해줌.
일단 Node.js에서 Node.js를 다운받고, 밑에처럼 버전이 확인하면 설치된거임!
이제 npx create-react-app 폴더명
명령어로 React 폴더를 생성해주자!
npm start
라고 명령어를 입력하면 됨그럼 아래처럼 브라우저 새창으로 development server(개발용 서버)가 띄어짐!
App.js
와 index.js
만 남기고 다 삭제하기//Button.js
import propTypes from 'prop-types';
function Button({text}) {
return <button>{text}</button>
}
Button.propTypes = {
text: propTypes.string.isRequired,
}
// 외부로 export 하기 위한 코드
export default Button;
Button.js
파일을 생성 후, Button컴포넌트를 만들어 주었다.export default Button;
를 작성해야함.//App.js
import Button from "./Button";
function App() {
return (
<div>
<h1>Welcome back!!</h1>
<Button text={"Continue"} />
</div>
);
}
export default App;
App.js
div태그 안에 Button 컴포넌트를 추가해줌//Button.js
import propTypes from 'prop-types';
function Button({text}) {
return <button>{text}</button>
}
Button.propTypes = {
text: propTypes.string.isRequired,
}
// 외부로 export 하기 위한 코드
export default Button;
npm i prop-types
명령어로 설치하고import propTypes from 'prop-types'
해준다.CSS에 관한 선택지를 가질 수 있는데
한 개의 css파일(style.css
)을 만들어서 index.js
로 가서 import './style.css'
하는 방법
하지만 외부 스타일 시트를 사용하면, 내가 꾸미고 싶지 않은 button에도 스타일이 적용되서 React를 사용하는 이유가 없어짐. 그래서 pass~
import propTypes from 'prop-types';
function Button({text}) {
return (
<button style={{
backgroundColor: "tomato",
color: "white",
}}>{text}</button>
);
}
Button.propTypes = {
text: propTypes.string.isRequired,
}
// 외부로 export하기 위한 코드
export default Button;
<Button />
이라는 컴포넌트를 쓰면 다 똑같은 CSS만 써야하는 제한성이 생김.create-react-app으로 작업할 때의 포인트는 "분할하고" "정복하는" 것!
그럼 무슨 방법을 쓸 수 있을까? 바로 CSS modules 방법!
Button.module.css
파일을 생성해주고 위의 내용을 작성해줌.Button.js
에 import 시켜줌import styles from './Button.module.css'
className
속성에 이런식으로 작성하게 되면 해당 클래스를 가진 버튼만 스타일이 지정됨App.module.css
파일을 생성해서 위의 내용 작성해줌.className
속성 작성함.만약 .btn
과 .title
의 클래스명을 같게 해도
위에처럼 클래스명이 랜덤으로 주어지기 때문에 같게 해도 상관없음.