inflearn logo
강의

Course

Instructor

Redux vs MobX (Learn Both!)

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

257

nureongi0214

6 asked

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

Answer 1

1

zerocho

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

0

nureongi0214

감사합니다!

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

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

0

370

1

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

0

287

1

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

0

358

1

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

0

385

1

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

0

383

1

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

0

258

1

redux-thunk질문

0

433

1

state 변경 시 질문

0

348

1

state변경 시 질문

0

329

2

firstMiddleware와 thunkMiddleware 순서 질문

0

434

1

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

1

273

1

미들웨어 질문

0

248

1

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

1

582

2

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

1

359

1

redux-saga 깃헙 파일

0

371

1

createStore -> configureStore

0

301

1

전역 변수와 전역 상태 값

0

668

2

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

0

439

1

MobX Data

0

233

1

mobx state action 변화 감지 관련

0

720

1

mobx configure

0

211

1

리덕스 툴킷 과 saga질문

0

289

1

로깅 미들웨어 질문입니다

0

240

1

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

0

206

1