기업과제를 진행하다보니 처음 보일러플레이트를 만드는데 드는 시간을 줄이고 싶다는 생각이 들었다.
그래서 재사용가능한 템플릿을 만들어 놓기로 했다.
$ npx creat-react-app template
$ npm i react-router-dom
$ npm install --save styled-component
$ npm i styled-reset
$npm i redux
$ npm install react-redux
$ npm i redux-devtools-extension
GlobalStyles.js
component 생성import { createGlobalStyle } from 'styled-components';
import reset from 'styled-reset';
const GlobalStyles = createGlobalStyle`
${reset}
a{
text-decoration: none;
color: inherit;
}
*{
box-sizing: border-box;
}
::-webkit-scrollbar {
display: none;
}
input, textarea {
-moz-user-select: auto;
-webkit-user-select: auto;
-ms-user-select: auto;
user-select: auto;
}
input {
border: none;
}
button {
border: none;
background: none;
padding: 0;
cursor: pointer;
}
`;
export default GlobalStyles;
App component에 GlobalStyles Comoponet 추가
{
"singleQuote": true,
"semi": true,
"useTabs": false,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 200
}
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { createStore } from 'redux';
import rootReducer from './modules';
import { Provider } from 'react-redux';
import { composeWithDevTools } from 'redux-devtools-extension';
//!Provider를 이용해 <App/> 을 감싸면 모든 컴포넌트에서 store에 접근 가능
const store = createStore(rootReducer, composeWithDevTools());
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>,
document.getElementById('root'),
);
reportWebVitals();