MobX의 autorun은 observable state가 변경될 때 특정 작업을 자동으로 실행 하도록 도와주는 반응형 유틸리티이다. 내부에서 상태의 의존성을 자동으로 추적하여 상태가 변경되면 지정한 작업이 실행된다.
처음 보면 무슨 말인가 싶다. 그렇다면,
autorun을 사용해야 할까?autorun은 첫 실행 시점에서 코드 내부에서 사용하는 모든 observable state를 추적한다.
autorun 블록 내부의 코드가 재실행된다.import { makeAutoObservable, autorun } from "mobx";
class Store {
count = 0;
constructor() {
makeAutoObservable(this);
}
}
const store = new Store();
// autorun 사용
autorun(() => {
console.log(`Count has changed: ${store.count}`);
});
// 상태 변경
store.count = 1; // 콘솔 출력: "Count has changed: 1"
store.count = 2; // 콘솔 출력: "Count has changed: 2"
autorun의 특징autorun과 reaction의 차이autorunautorun(() => {
console.log(`Count has changed: ${store.count}`);
});
reactionreaction(
() => store.count, // 의존성 대상 설정
(count) => {
console.log(`Count has changed: ${count}`); // 상태 변경 시 실행
}
);
autorun은 관찰 가능한 상태 변경에 따라 자동으로 실행되는 반응형 유틸리티이다.reaction을 사용하는 것이 적합하다.