MobX 🇺🇦

MobX 🇺🇦

  • API リファレンス
  • 中文
  • 한국어
  • スポンサー
  • GitHub

›ヒントとコツ

はじめに

  • MobX について
  • このドキュメントについて
  • インストール
  • MobX の要点

MobX コア

  • 観測可能な状態
  • アクション
  • 計算値
  • リアクション {🚀}
  • API

MobX と React

  • React 統合
  • React 最適化 {🚀}

ヒントとコツ

  • データストアの定義
  • 反応性の理解
  • サブクラス化
  • 反応性分析 {🚀}
  • 引数を持つ計算値 {🚀}
  • MobX-utils {🚀}
  • カスタム観測値 {🚀}
  • 遅延観測 {🚀}
  • コレクションユーティリティ {🚀}
  • 傍受と観測 {🚀}

微調整

  • 構成 {🚀}
  • デコレーター {🚀}
  • MobX 4/5 からの移行 {🚀}
編集

遅延観測を構築 {🚀}

用法

  • onBecomeObserved(observable, property?, listener: () => void): (() => void)
  • onBecomeUnobserved(observable, property?, listener: () => void): (() => void)

関数 onBecomeObserved と onBecomeUnobserved は、遅延挙動や副作用を既存の観測値に添付するために使用できます。MobX の観測システムに接続し、観測値が観察され始めるときと止まるときに通知を受け取ります。どちらもリスナーを取り外すディスポーザー関数を返します。

次の例では、観察された値が実際に使用されている場合にのみネットワークフェッチを実行するためにそれらを使用します。

export class City {
    location
    temperature
    interval

    constructor(location) {
        makeAutoObservable(this, {
            resume: false,
            suspend: false
        })
        this.location = location
        // Only start data fetching if temperature is actually used!
        onBecomeObserved(this, "temperature", this.resume)
        onBecomeUnobserved(this, "temperature", this.suspend)
    }

    resume = () => {
        log(`Resuming ${this.location}`)
        this.interval = setInterval(() => this.fetchTemperature(), 5000)
    }

    suspend = () => {
        log(`Suspending ${this.location}`)
        this.temperature = undefined
        clearInterval(this.interval)
    }

    fetchTemperature = flow(function* () {
        // Data fetching logic...
    })
}
← カスタム観測値 {🚀}コレクションユーティリティ {🚀} →
MobX 🇺🇦
ドキュメント
MobX についてMobX の要点
コミュニティ
GitHub ディスカッション (NEW)Stack Overflow
その他
スター