Sobes.tech
Middle
180

MobX туралы айтыңыз.

AI-дан жауап

sobes.tech AI

MobX — бұл қолданба күйін басқару үшін кітапхана. MobX негізінде үш тұжырымдама жатыр:

  • Күй (State): қолданбаның күйін құрайтын деректер. observable (бақыланатын) ретінде жарияланады.

    // observable күй
    импорт { observable } одан "mobx";
    
    const appState = observable({
        count: 0
    });
    
  • Туынды деректер (Derivations): күй негізінде есептелетін деректер. Күй өзгерген кезде автоматты түрде жаңартылады. computed (есептелетін) ретінде жарияланады.

    // есептелетін туынды
    импорт { observable, computed } одан "mobx";
    
    const appState = observable({
        count: 0
    });
    
    const squaredCount = computed(() => appState.count * appState.count);
    
  • Әрекеттер (Actions): күйді өзгертетін функциялар. Күйді айқын мутировать ету үшін ұсынылады. action ретінде жарияланады.

    // күйді өзгерту әрекеті
    импорт { observable, action } одан "mobx";
    
    const appState = observable({
        count: 0
    });
    
    const increment = action(() => {
        appState.count++;
    });
    

MobX реактивті парадигманы қолданады, тәуелділіктерді автоматты түрде бақылайды. Бақыланатын күй өзгерген кезде, барлық туынды деректер мен реакциялар (мысалы, UI-ді рендерлеу) автоматты түрде жаңартылады.

MobX артықшылықтары:

  • Қарапайым: Минималистік API, қолдануды оңай бастау.
  • Өнімділік: Тәуелділіктерді автоматты бақылау артық перерисовки мен есептеулерді азайтады.
  • Икемділік: Әртүрлі UI-фреймворктермен жақсы интеграцияланады (React, Vue, Angular).

MobX негізгі декораторлары/құралдары:

Атауы Мақсаты
observable Бақыланатын күйді анықтайды.
computed Есептелетін туынды деректерді анықтайды.
action Күйді мутировать ететін әрекетті анықтайды.
autorun Бақыланатын деректер өзгерген кезде автоматты түрде орындалатын реакцияны құрады.
reaction Тәуелділіктер мен әсерлерді анықтайтын реакцияны құрады.
when Белгілі бір шарт орындалғанда бір рет орындалатын реакцияны құрады.

React-пен интеграция әдетте mobx-react немесе mobx-react-lite пакеттері арқылы жүзеге асырылады, хуктер (useObserver, useLocalStore) немесе компонент-обертки (observer) пайдалана отырып.

// Негізгі React + MobX интеграциясы
импорт React одан "react";
импорт { useObserver } одан "mobx-react-lite";
импорт { observable, action } одан "mobx";

const appState = observable({
    count: 0
});

const increment = action(() => {
    appState.count++;
});

функция Counter() {
    қайтару useObserver(() => (
        <div>
            Count: {appState.count}
            <батырма onClick={increment}>Өсірту</батырма>
        </div>
    ));
}

MobX кез келген көлемдегі қолданбаларға жарамды, шағын виджеттерден бастап ірі масштабты кәсіпорын шешімдеріне дейін.