[CSS 작성 방법 결정하기]
import React from 'react';
import Style from'./Box.module.css';
export default function Button({size}) {
if (size === 'big') {
return <button className={`${Style.box} ${Style.big}`}>큰 박스</button>;
} else {
return <button className={`${Style.box} ${Style.small}`}>작은 박스</button>;
}
}
npm install node-sass
npm install node-sass@4.14.1 // CRA로 만들어진 프로젝트는 5.0버전과 충돌하기 때문에 4.xx 버전으로 깔아야 함
npm install styled-components
import React from 'react';
import styled from 'styled-components';
const BoxCommon = styled.div`
height: 50px;
background-color: #aaaaaa;
`;
const Boxbig = styled(BoxCommon)`
width: 200px;
`;
const BoxSmall = styled(BoxCommon)`
width: 100px;
`;
export default function Box({size}) {
if (size === 'big') {
return <Boxbig>큰 박스</Boxbig>;
} else {
return <BoxSmall>작은 박스</BoxSmall>;
}
}
[단일 페이지 어플리케이션(SPA) 만들기]
SPA가 가능하기 위한 조건
자바스크립트에서 브라우저로 페이지 전환 요청을 보낼 수 있다.
브라우저의 뒤로 가기와 같은 사용자의 페이지 전환 요청을 자바스크립트에서 처리할 수 있다.
위 조건을 만족시켜주는 브라우저 API
pushState, replaceState 함수
popState 이벤트
react-router-dom 설치
npm install react-router-dom