mobx的基础知识

本文介绍了如何在React应用中使用MobX进行状态管理,包括安装mobx和mobx-react-lite来支持函数式组件,以及使用mobx和mobx-react针对类组件。通过创建store,实现了数据动态响应,并展示了模块化的状态管理,利用React Context进行统一封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.mobx的安装:yarn add mobx  mobx-react-lite 这个针对于函数式组件的安装

2.mobx的类组件安装 :yarn add  mobx  mobx-react 这个是对类组件的安装

app 代码:

import { del } from './store/del.js'
import { observer } from 'mobx-react-lite'
// 调用 observer这个函数包裹组件,实现数据的动态响应

function App17() {

  return (
    <div>

      <br />
      {del.add}
      <button onClick={del.addTel}>-1</button>
      <p>{del.List.join('-')}</p>
      <button onClick={del.addCe}>+1</button>
    </div>
  )
}
export default observer(App17)

store代码:

import { makeAutoObservable } from 'mobx'
class DelStore {
  add = 20
  arr = [1, 2, 3, 1, 4, 5, 6]
  constructor() {
    makeAutoObservable(this)
  }
  // 计算属性用get
  get List() {
    return this.arr.filter(item => item > 3)
  }
  // 自减属性函数
  addTel = () => {
    this.add = this.add - 1
  }
  // 自增属性函数
  addCe = () => {
    this.add = this.add + 1
  }
}
const del = new DelStore()
export { del }

 3.mobx模块化:

import React from 'react'
import { ListStore } from './listStore'
import { CountStore } from './CountStore'

class RootStore {
  constructor() {
    this.countStore = new CountStore()
    this.listStore = new ListStore()
  }
}
// 实例化操作
const rootStore = new RootStore()
// 使用react context机制完成统一封装
// 查找机制:useContext优先从Provider value 找。找不到就找上一层createContext方法传递过来的默认参数
const context = React.createContext(rootStore)
// 这个方法作用:通过useContext 拿到rootStore实例对象然后返回
const useStore = () => React.useContext(context)

export { useStore }

 app代码:

import { observer } from 'mobx-react-lite'
import { useStore } from './store/index.js'
function App18() {
  // 接收一下这个值
  const { countStore, listStore } = useStore()
  // console.log(rootStore)
  // console.log(useStore)
  return (
    <div>
      {countStore.count}
      <button onClick={countStore.cddList}>+1</button>

      函数组件
      {listStore.list.join('-')}
      -----
      <button onClick={listStore.addText}>wode </button>
    </div>
  )
}
export default observer(App18) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值