일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- cors
- NeXT
- angular4
- 웹뷰
- hybrid
- Android
- https
- 알려줌
- nextjs
- fanzeel
- S3
- 네이티브
- node
- TypeScript
- angular
- 안드로이드
- node.js
- react
- Elastic Beanstalk
- ios
- swift
- beanstalk
- 카카오톡
- JavaScript
- 감사일기
- php
- Route53
- 페이스북
- AWS
- 도메인
- Today
- Total
쪼렙 as! 풀스택
REACT - create-react-app 에서 mobX 사용하기. 18.06.07 본문
2018. 12. 5. 수정.
현재 최신버전의 create-react-app 으로 만든 프로젝트에 대해 mobx 적용하는 방법이 훨씬 간단해졌다.
1. 일단 리액트 프로젝트를 eject 시킨다.
2. mobx 에서 제공하는 babel-preset-mobx 를 추가한다.
3. package.json 에서 babel-presets 을 수정해준다.
4. mobx , mobx-react 를 추가해준다.
그러면 이제 그냥 써도 된다;;;
근데, vscode 에서 데코레이터에 관련된 Warning 이 뜬다.
기존처럼 tsconfig.json 을 root 에 추가해서, 수정하려고 했는데, 그러면 오히려 빌드 에러가 난다.
그냥 vscode 의 셋팅에서 이 warning 을 꺼주면 되더라.
command + ' , ' (콤마) -> 셋팅.
검색에서 experimentalDecorators 찾아서, 체크해준다.
아무 문제 없이 잘 돌아간다.
ANGULAR로 만들던 FANZEEL 을 리액트로 갈아엎고 있다.
전역적 상태관리를 위해서, 일단 리액트 16.3의 ContextAPI 를 공부해서 쓰려고 했는데, 쫌 맘에 안든다.
구조적으로 의존성이 심하고, 오만 잡다한 state 와, 액션까지 한곳에 정의해놓고, 한꺼번에 내려보낸다는 컨셉이 참 별로다.
state 를 내려보내는건 당연하긴 하겠지만, 상태변경을 위한 액션까지 정의해놓고 그거를 넘겨주는건 좀 별로지 않나?
아직 Best Practice 가 없어서 그런지, 찾아본 예제들의 거의 대부분이 저런식으로 사용하고 있다.
그래서 mobX를 사용하기로 했다.
-------------------------------------
create-react-app 에서 mobX를 사용하면, 데코레이터에서 에러를 내뿜는다.
create-react-app 에서 babel5가 들어있고, babel6 가 없어서 그렇단다.
그래서 eject 를 해서 패키징을 풀어버리고, 커스텀할 수 있게 만들어줘야 한다.
방법은 아래의 블로그에 잘 나와있다.
https://swizec.com/blog/mobx-with-create-react-app/swizec/7158
https://www.robinwieruch.de/create-react-app-mobx-decorators/
이후 package.json 에 아래부분을 추가해야하는데,
json 하단에 자동으로 생성된 "babel"이 중복으로 정의되어있을 수 있다. 잘 살펴보자.
'개발 일지 > Web & Server' 카테고리의 다른 글
18.06.11. React - Next.JS 로 SSR 환경 꾸미기. (0) | 2018.06.11 |
---|---|
React - 16.3 이상에서 DOM 레퍼런스 가져오기. 18.06.08 (0) | 2018.06.08 |
Angular - 문자열 클립보드에 복사, 영역 선택하기. (0) | 2018.03.13 |
htaccess 에서 CORS 방지하기 위해 Access-Control-Allow-Origin 설정하기. (0) | 2018.02.28 |
Angular - 라우터 Navigate 하기, param 가져오기. (0) | 2018.01.05 |