Maenya's Techlog

mobx 프로젝트 파일 생성 본문

프로그래밍/JS | React

mobx 프로젝트 파일 생성

ming235 2020. 4. 11. 20:07

<Container>

MainContainer.js

 

<Store>

UserStore.js

 

데코레이터 autobind

서투른 맹이는 @Autobind를 쓰고싶은데 도저히......

 

일단 욕심부리지 않고 기본적인 구동만 해보았다.

드디어 떠오른 맹이의 MainContainer

이거는 App.js

 

Mobx 를 사용하고 있어서 좋은점은 어노테이션을 사용해서 가독성이 좋다.
회사에서는 프로젝트를 생성할 때 이미 reuse 부서에서 만들어 놓은 틀 이나 shared 파일들 덕분에 그냥 프로젝트생성하고 코딩에만 몰두하면 되지만, 막상 혼자 만들어 볼때 약간 삽질했다.

<Mobx 프로젝트 생성>
$ npx create-react-app mobx-with-react
$ cd mobx-with-react
$ yarn add mobx mobx-react
$ yarn start

여기에 @어노테이션같은 데코레이터를 사용하려면 babel 설정을 따로 해줘야 한다. 

 

<babel설정 커스터마이징> - 가장 큰 배포단위 경로에서 할것(src부모 폴더)
$ yarn eject
$ yarn add @babel/plugin-proposal-class-properties @babel/plugin-proposal-decorators

<package.json>

"babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [
        ["@babel/plugin-proposal-decorators", { "legacy": true}],
        ["@babel/plugin-proposal-class-properties", { "loose": true}]
    ]
  }

이러고 yarn install 한번하고 yarn start
솔직히 사내에서도 리액트 가이드가 아직까지는 제대로 없어서 구글링을 많이 하기때문에 이 또한 구글링하다가 알아낸 방법들이다. 
아무튼 이렇게 하고 나면 깔끔하게 데코레이터를 사용할 수 있다.

내가 또 삽질한것은 !
다해도 자꾸 모듈 빌드 에러가 뜬다.
Failed to compile 빨갛게 뜨면서 Module build failed 라고 뜨는데 빌드를 못한다는 모듈을 찾아서
$ yarn add [모듈이름]  이런식으로 하나하나 해주면 된다.
이보다 쉬운 방법이 있을진 모르지만 나는 이것 밖에 못찾았다ㅜㅜ

그리고 mobx도 리덕스처럼 store가 있다
스토어에는 상태들을 미리 선언해놓고