반응 mobx-1

수입 { 관찰 } 에서  ' 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 완료'> 동기 인쇄

 

추천

출처www.cnblogs.com/avidya/p/11589877.html