mobx的简单使用,observable,computed,action

文章介绍了在React项目中集成mobx,创建store,配置Babel支持装饰器,以及在组件中使用mobx进行数据操作的过程。
摘要由CSDN通过智能技术生成

毕业后第一次原公司倒闭换公司,第一个学习的项目用到mobx,特地写个日记记录在react中的使用

yarn add mobx
yarn add mobx-react
yarn add @babel/plugin-proposal-decorators

//package.json中babel添加 @babel/plugin-proposal-decorators
"babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [
      [
        "@babel/plugin-proposal-decorators",
        {
          "legacy": true
        }
      ]
    ]
  }
// mobx创建一个store
import { observable, computed, action, makeObservable } from "mobx";
class MobxStore {
  username = 'water'
  @observable userage = 24
  @observable usernick = '水王'
  @observable userlist = ['水王', '水鬼']

  @computed get getUserList () {
    return this.userlist
  }

  @computed get getUserAge () {
    return this.userage
  }

  @action updateUserAge(newValue) {
    this.userage = newValue
  }
  @action pushUserlist(newValue) {
    this.userlist = [ ...this.userlist, newValue ]
  }
  constructor() {
    makeObservable(this)
  }
}

export default MobxStore
// 创建一个对象收集全部仓库
import MobxStore from "./userMobX";
const mobxStore1 = new MobxStore()
const mobxStores = {
  mobxStore1
}
export default mobxStores
// index.js中导入provier和仓库合集
import { Provider } from 'mobx-react'
import mobxStores from './mobx';
....


root.render(
  <React.StrictMode>
    <Provider {...mobxStores}>
      <App />
    </Provider>
  </React.StrictMode>
);
// 页面使用mobx的数据和修改
import React from 'react'
import { inject, observer } from 'mobx-react'
const MobXOut = (props) => {
  const { mobxStore1 } = props
  return(
    <div>
      '我是mobx'{mobxStore1.getUserAge}
      {JSON.stringify(mobxStore1.getUserList)}
      <button onClick={() => {mobxStore1.updateUserAge(666)}}>mobx修改state</button>
      <button onClick={() => {mobxStore1.pushUserlist('demo')}}>mobx添加userlist</button>
    </div>  
  )
}
export default inject('mobxStore1')(observer(MobXOut))

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
React-MobxReact应用程序和Mobx状态管理库的结合。它帮助开发人员在应用程序中轻松管理和更新状态,同时提高应用程序的性能。 下面是使用React-Mobx的基本步骤: 1. 安装React-Mobx使用npm安装React-Mobx库。 ``` npm install mobx mobx-react --save ``` 2. 创建一个store:一个store是包含应用程序状态的对象。它可以包含数据和方法,用于更新和管理状态。 ```javascript import { observable, action } from 'mobx'; class CounterStore { @observable count = 0; @action increment() { this.count++; } @action decrement() { this.count--; } } const counterStore = new CounterStore(); export default counterStore; ``` 3. 在React组件中使用store:使用`Provider`组件将store传递给React组件,然后使用`inject`和`observer`高阶组件包装组件。 ```javascript import React from 'react'; import { Provider, inject, observer } from 'mobx-react'; import counterStore from './counterStore'; @inject('counterStore') @observer class Counter extends React.Component { render() { const { counterStore } = this.props; return ( <div> <h1>Count: {counterStore.count}</h1> <button onClick={counterStore.increment}>+</button> <button onClick={counterStore.decrement}>-</button> </div> ); } } const App = () => ( <Provider counterStore={counterStore}> <Counter /> </Provider> ); export default App; ``` 在这个例子中,`inject`高阶组件将store作为props传递给`Counter`组件,`observer`高阶组件将组件转换为响应式组件,使组件能够响应store中状态的更改。 4. 更新状态:使用store中的方法更新状态。 ```javascript import counterStore from './counterStore'; counterStore.increment(); counterStore.decrement(); ``` 这些是使用React-Mobx的基本步骤。使用React-Mobx可以更轻松地管理和更新状态,同时提高应用程序的性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值