청크는 함수를 반환할수 있는 반면, 사가는 순수 객체만 전달한다.
청크 = mutable, 사가 = immutable 환경이다.
사가는 리듀서에 전달되기전 비동기 통신에 대한 응답을 전달해줄수 있는반면,
청크는 함수자체를 내려 준다. 즉 사가는 사이드 이펙트를 줄이고, 에러에 대한 핸들링이 더 유연하다고 볼수 있다.
Saga는 Thunk와는 달리 콜백 문제가 발생하지 않고,
비동기식 흐름을 쉽게 테스트 할 수 있으며 작업이 immutable하게 유지된다.”
비동기 부분을 보면 dispatch에 함수 자체를 보내는걸 볼 수 있다. mutable한 환경을 제공해줌으로서 사이드이펙트의 발생과 비동기 통신에 대한 에러 핸들링도 어려움이 있을수 있다.
Its return value will be considered the next state. It will be returned from getState() from now on, and the change listeners will immediately be notified.
만약 리턴하는 함수에서 dispatch, getState를 파라미터로 받게 한다면, 스토어의 상태에도 접근할 수 있습니다.
따라서 현재의 스토어 상태의 값에 따라 액션이 dispatch될지 무시될지 정해줄 수 있는 것 입니다.
코드 푸쉬는 MS에서 만든 오픈소스로서 앱을 심사없이도 실시간 업데이트를 가능하게 해주는 모듈입니다.
리엑트 네이티브에서는 네이티브 코드와 설정이 아닌 Javascript단의 코드와 assets(이미지, 폰트 등) 의 요소들을 앱 심사없이 바로 업데이트 할 수 있습니다.
npm / yarn
https://stackoverflow.com/questions/50278553/what-is-main-difference-between-yarn-and-npm
lodash - cloneDeep
→ depth 가 2 이상인것도 copy?
onChangeText = e => {
this.setState({
message: e
});
};
_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]
build , start
React Native API 중 Picker 는 Deprecated 되었음.
const diffDay = moment().diff(moment(new Date(section.regdate)).format('YYYY-MM-DD'), 'day');
npm run build is an alias for npm build
npm start은 package.json의 scripts에 있는 start 명령어를 실행하는 부분입니다. 만약 start 명령어를 따로 설정하지 않았다면 node server.js가 실행됩니다.
npm stop은 뭔지 알겠죠? npm start했던 것을 멈추는 명령어입니다.
npm restart은 npm stop 후에 다시 npm start를 하는 명령어입니다.
npm test는 test 명령어를 실행합니다.
npm run은 그 이외의 scripts를 실행하는 명령어입니다. 예를 들어 scripts에 build 명령어가 있다하면, npm run build하면 됩니다.
npm cache는 npm 내의 cache를 보여줍니다. 만약 npm에 문제가 생기거나 하면 제일 먼저 하는 게 npm cache clean으로 cache를 지우는 겁니다.