React—— mobx-react 状态管理

1. 安装依赖

cnpm i -S mobx mobx-react

2. 创建store/index.js
在这里插入图片描述

import {observable, computed, action , makeObservable} from "mobx";

class Store {
    constructor() {
        makeObservable(this)
    }

    /*观察的状态*/
    @observable num = 0

    /*推导值*/
    @computed get getNumDouble(){
        return this.num * 2
    }

    /*状态改变的函数*/
    @action setNum(num){
        this.num = num
    }
}

export default new Store()

3. app.js 使用Provider 包裹

import './App.css';
import Index from "./router/Index";
import {Provider} from "mobx-react";
import Store from "./store/index.js";

function App() {
  return (
    <div className="App">
        <Provider store={Store}>
            <Index></Index>
        </Provider>
    </div>
  );
}

export default App;

4. 状态显示、修改

import React from "react";
import {inject , observer} from "mobx-react";

@inject("store")
@observer
class Page1 extends React.Component{

    render() {
        return <div>
            数值:{this.props.store.getNumDouble}
            <button onClick={this.handleChange}>修改数值</button>
        </div>
    }

    handleChange =()=>{
        this.props.store.setNum(10)
    }
}

export default Page1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mobx-react是一个用于将MobxReact框架结合使用的中间件工具。它提供了一些装饰器和高阶组件,使得在React组件中使用Mobx更加方便。通过使用@inject装饰器,我们可以将Mobxstore注入到组件的props中,以便在组件中访问和使用store中的数据。同时,使用@observer装饰器可以将组件转化为观察者,使得组件能够响应store中数据的变化并进行相应的更新。这样,当store中的数据发生变化时,被观察的组件也会相应地进行更新。\[3\] #### 引用[.reference_title] - *1* [mobxreact如何使用](https://blog.csdn.net/weixin_43834567/article/details/118414211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [React-Mobx(入门)](https://blog.csdn.net/weixin_57844432/article/details/127923571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Reactmobxmobx-react 入门](https://blog.csdn.net/sinat_17775997/article/details/82765771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值