回顾一下和数据传输相关的 React 知识

  • 组件内
    • class 组件 state
    • 函数组件 useState
  • 组件间
    • props 传递
    • createContext、Provider、Consumer

一、核心概念

Actions State Computed values Reactions

二、基本用法

  1. import {observable,computed,action,autorun} from 'mobx'

State

  1. // State,被观察者
  2. const todos = observable([
  3. {
  4. title:'起床'
  5. cimpleted:false
  6. },
  7. {
  8. title:'穿衣',
  9. completed:false
  10. },
  11. {
  12. title:'洗漱',
  13. completed:false
  14. }
  15. ])

Computed values

  1. // Computed values,由 State 的更新触发
  2. let uncompletedCont = computed(
  3. ()=>todos.filter(todo => !todo.completed).length
  4. )

Reaction

  1. // Reactions,由 State 和 Computed Values 的改变触发执行
  2. autorun(()=>{
  3. console.log(
  4. `剩余任务:${uncompletedCont}`,
  5. todos
  6. .filter(todo=>!todo.completed)
  7. .map(todo=>todo.title)
  8. .join(',')
  9. )
  10. })

Action

  1. // Actions,用来改变被观察者 State
  2. const doTask = action(()=>{
  3. todos.find(todo=>!todo.completed).completed = true
  4. })
  5. doTask()

三、核心思想

状态的改变引发一系列自动行为

(结合 React 使用的方法待更新)

「@浪里淘沙的小法师」