npm install -g create-react-app
npx create-react-app my-app --template typescript
# or
yarn create react-app my-app --template typescript
{
loader: require.resolve('sass-loader'),
options: {
sourceMap: true
}
}
BrowserRouter - history API를 사용해 URL과 UI를 동기화하는 라우터.
Route - 컴포넌트의 속성에 설정된 URL과 현재 경로가 일치하면 해당하는 컴포넌트, 함수를 렌더링
import { BrowserRouter, Route } from 'react-router-dom';
ReactDOM.render(
<BrowserRouter>
<Route
path="/"
component={App}/>
</BrowserRouter>
document.getElementById('root')
);
root 파일에 (경로 index.tsx) 파일에 Provider 설정
import { Provider } from 'mobx-react';
const stores = new RootStore();
ReactDOM.render(
<Provider {...stores}>
<BrowserRouter>
<Route
path="/"
component={App}/>
</BrowserRouter>
</Provider>,
document.getElementById('root')
);
// 운영
yarn add react-router-dom @types/react-router-dom classnames @types/classnames axios mobx mobx-react @loadable/component @types/loadable__component react-helmet @types/react-helmet
query-string
// 개발
yarn add node-sass@4.14.1 sass-loader@7.3.1 --dev
mkdir components config images interfaces lib shared stores
// components
cd components mkdir common touch Header.scss Header.tsx Sidebar.scss Sidebar.tsx
// config
cd config mkdir
touch
차 주