수입 { 관찰 } 에서 ' mobx ' ; VAR 의 AppState = 관측 ({ 타이머 : 0 });
수입 { 관찰자 } 에서 ' mobx - 반응 ' ; @observer 클래스 TimerView는 React.Component는 {연장 렌더링 () { 창 ( <버튼의 onclick = { 이 .onReset.bind ( 이 )}> 초 경과 { 이 .props.appState.timer} </ 버튼> ); } onReset () { 이 .props.appState.resetTimer (); } }; ReactDOM.render ( <TimerView의 AppState = {}의 AppState />는 document.body);
appState.resetTimer = 작용 (기능 재설정 () { appState.timer = 0 ; }); 하여 setInterval ( 동작 (기능 틱 () { appState.timer + = 1 ; }) 1,000 );
(1) . 주 (상태) 데이터를 스프레드 시트를 Excel과 같은 상태는 데이터 기반 응용 프로그램입니다.
2 . 파생의 (유래의) 모든 파생 상태가 더 상호 작용 것은 유래 없을 것이다. 사용자 인터페이스 파생 데이터 등의 나머지 부분과 작업을위한 번호입니다. 백엔드 통합 서버에 변경 사항을 보낼 등. MobX 유도체는 두 가지 구별 :
값 계산 된 (CALC)는 - 그들은 결코 순수 기능 (순수 기능)을 사용할 수있는 현재의 관측 상태 값에서 파생 될 수 있습니다. 반응 (반응) - 반응에 부작용이 자동으로 될 때 상태 변화를 발생한다.
연결 명령 프로그래밍 (필수 프로그램)과 반응 프로그래밍 (반응 프로그래밍)을 해소 할 필요가있다.
그들은 궁극적으로 I / 구현하는 데 필요한 O 작업을.
황금률 : 현재 값을 기준으로 상태를 만들려면 계산 사용합니다.
. (3) . 액션 (동작) 의 동작 상태 코드가 변경 될 수있다. 사용자 이벤트, 백 엔드 데이터 푸시, 예약 된 이벤트, 등등. 당신이 엄격 모드에서 MobX를 사용하는 경우, 다음, MobX는 동작 상태를 수정하도록 강요됩니다.
원칙 :
MobX 상태의 변화가 영향을받는 모든 뷰를 업데이트 할 것입니다, 즉, 조치가 상태를 변경하는 단방향 데이터 흐름을 지원합니다.
상태 변경, 모든 파생 상품은 자동으로 원자 수준을 업데이트하면 모든 업데이트를 동시에 파생 기본이다.
계산 된 지연은 모든 계산 된 값은 순수해야한다, 업데이트됩니다. 그들은 상태를 변경하는 데 사용할 수 없습니다
예를 들면 :
관찰 {오기, 자동 실행} 에서 ' mobx ' ; var에 todoStore = 관측 ({ / * 관찰 상태의 개수 * / 왜 그렇게 [] / * 유도 값 * / GET completedCount을 () { 반환 이 본 .todos.filter (= TODO을 > todo.completed) .length; } }); / * 함수 관찰 상태 변화 * / 자동 실행 (함수 () { CONSOLE.LOG ( " 항목의 완료의 D %의 %의 D " , todoStore.completedCount, todoStore.todos.length ) }); / *.. 상기 동작 상태에서 약간의 변화 * / todoStore.todos [ 0 ] = { 제목 : " 는 A 촬영 워크 " , 완료를 : 거짓 } // - '완료된 0.1 항목'> 동기 인쇄 todoStore.todos [ 0 ] = .completed true로 ; // - '1 개 항목의 1 완료'> 동기 인쇄