inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Redux vs MobX (둘 다 배우자!)

섹션 3 mobx autorun 관련 질문입니다.

254

nureongi0214

작성한 질문수 6

0

const state = observable({
  name: "zero",
  age: 28,
  married: false,
});

autorun(() => {
  console.log("autorun : " + state.name);
});

reaction(
  () => state.name,
  () => {
    console.log("reaction : name changed");
  }
);

runInAction(() => {
  state.name = "nureongi";
  state.age = 26;
});

const action1 = action(() => {
  state.married = true;
});

const action2 = action(() => {
  state.married = false;
})

action1();
action2();

/**
autorun : zero
autorun : nureongi
reaction : name changed
**/

안녕하세요! 강의 잘 듣고 있습니다.

 

제가 궁금한 것은 강의에서 autorun은 observable에 담긴 모든 state가 변경될 때 마다 실행된다고 하셨는데

실제 실험해보니 결과가 조금 다르게 나온 것 같았습니다.

그래서 확인해보니 다음과 같이 동작한다는 사실을 알게 되었습니다.

 

  1. autorun이 정의될 때 한 번 실행

  2. autorun 함수 내부에서 참조하고 있는 observable state가 변경될 때 실행

 

아마 버전이 업데이트 되면서 바뀐 것 같은데 제가 알게 된 사실이 맞을까요?

redux mobx

답변 1

1

제로초(조현영)

autorun에 state.name을 담아두셨으니 state.name이 변경될 때만 autorun이 실행되는 게 맞습니다. autorun.married가 바뀔 때는 안 실행되는 거죠. 버전 업데이트 전에도 원래부터 그랬던 걸로 기억합니다.

0

nureongi0214

감사합니다!

제가 섹션 3 강의에서 autorun은 액션이 실행될 때마다 무조건 실행된다고 이해해서 혼동이 왔었네요

context api, redux를 혼용하는건 별로일까요?

0

367

1

thunk 미들웨어 잡업 중 논리로직 단계? 질문이 있습니다.

0

285

1

rootSaga에서 call를 사용하는 이유가 궁금합니다.

0

355

1

observable의 함수를 익명함수로 바꿔봤습니다.

0

383

1

useSelector 리랜더링 질문있습니다.

0

382

1

비동기 action 타입을 뭘로 지정해야 할까요?

0

258

1

redux-thunk질문

0

432

1

state 변경 시 질문

0

346

1

state변경 시 질문

0

329

2

firstMiddleware와 thunkMiddleware 순서 질문

0

433

1

객체 동적 다이나믹 속성?? 질문

1

272

1

미들웨어 질문

0

247

1

리덕스 사가 실습 파일 확인 부탁드립니다!

1

581

2

1-6 강의에서 질문 있습니다!

1

359

1

redux-saga 깃헙 파일

0

369

1

createStore -> configureStore

0

299

1

전역 변수와 전역 상태 값

0

665

2

Redux toolkit 과 axios API 호출에 관한 질문입니다.

0

439

1

MobX Data

0

233

1

mobx state action 변화 감지 관련

0

713

1

mobx configure

0

207

1

리덕스 툴킷 과 saga질문

0

285

1

로깅 미들웨어 질문입니다

0

236

1

제너레이터 질문드립니다.

0

202

1