Model
View
Controller
V: 뷰컨트롤러는 멍청해야한다!
iluvdadong/youtubeClonePJ
Contribute to iluvdadong/youtubeClonePJ development by creating an account on GitHub.
github.com
- 네트워크 통신은 따로 youtube.js에서 class로 만들어서 해줌
- class로 만들어준 것은 다른 데서 instance로 만들어서 사용해야함
const youtube = new Youtube('sdf');
- 그리고 위의 것은 딱 1번만 호출하는 곳에 코드를 심어야한다.
- 그렇지 않으면, 예를 들어 app.jsx의 컴포넌트 안에 심으면 리렌더링 될 때마다 instance가 만들어진다.
- 그래서 index.js에서 불렀음. 그리고 이렇게 만들어진 인스턴스 youtube를 필요한 컴포넌트에 전달해준다.
ReactDom.render(
<React.StritcMode>
<App youtube={youtube} />
<React.SrictMode>,
document.getElementById('root')
);
- js든, jsx던 해당 페이지를 export를 해줘야 다른 페이지에서 Import가 가능하다
.env
DB Connection 정보나 API Key 를 숨기기 위해!
- .env로 저장하고
- gitignore를 통해 네트워크키 라던지 공개되어서는 안되는 것들 까지 깃에 올라가지 않도록 한다.
- =>git ignore에 .env를 추가해서 깃허브에서 추적되지 않도록 한다.
.env 환경 변수
DB connection, API Key의 경우 SCM(source code management)를 사용하는 경우, 비밀 정보가 노출되므로 별도의 행위가 필요하다.배포시 cmd으로 config 변경 가능express에서는 NODE_ENV라는 환경변수를 통해 개발환
velog.io
결론
리액트 컴포넌트는 최대한 멍청하게 만든다!
네트워크 처리 / 스토리지 쓰는 것은 개별적 클래스를 만들고 API를 이곳에 제공하도록 만든다.
'[React] Front-End' 카테고리의 다른 글
[FE] useEffect() / 상태값을 계속 물고있으려면? (0) | 2021.06.28 |
---|---|
[FE] TIL : Checkbox (0) | 2021.06.27 |
[FE] JS 객체에 특정 key값 존재 확인 방법 (0) | 2021.06.26 |
[FE] 기능 구현 컴포넌트 만드는 순서 / useRef() (0) | 2021.06.21 |
[FE] CSS 정리 : display / align-items / justify-content / box-sizing (0) | 2021.06.20 |