美文网首页
React开发之【Mobx状态管理,非装饰器模式】

React开发之【Mobx状态管理,非装饰器模式】

作者: Hamiltonian | 来源:发表于2022-12-13 11:00 被阅读0次

React开发之【Mobx状态管理,非装饰器模式】

React项目装饰器开启失败, 下面是不用装饰器模式的写法

A.【Store.js】存放状态所有需要数据驱动的状态

import { observable, computed} from "mobx";
const store = observable({
    price:1,
    amount:1,
    total:1,
});
export default store

B.【Test.js】和Store.js绑定的UI:(全部需要数据UI驱动的变量都要在autorun里面)

import React from 'react';
import {autorun, observer} from 'mobx';
import store from './Store';
class Test extends React.Component{
     
    constructor() {
        super();

        this.addPrice = this.addPrice.bind(this);
        this.addAmount = this.addAmount.bind(this);
      }
      componentDidMount(){
        autorun(()=>{
          ///全部需要数据UI驱动的变量都log在这里
          console.log(store.price);
          console.log(store.amount);
          console.log(store.total);
          this.setState({});
        });
        // this.addPrice = this.addAmount.bind(this);
        // this.addAmount = this.addAmount.bind(this);
      }

      addPrice(){
        store.price = store.price+1;
        store.total = store.amount * store.price;

      }

      addAmount(){
        store.amount = store.amount+1;
        store.total = store.amount * store.price;
 
      }
      render(){
        return(
            <div>
            <h1>Hello, world!</h1>
            <h2 onClick={this.addPrice}>price++ {store.price}</h2>
            <h2 onClick={this.addAmount}>amount++ {store.amount}</h2>
            <h2 >total {store.total}</h2>
          </div>
        )
      }
}

export default Test;

C.【index.js】调用TestWidget

import Test from './Test'

 <div>
  <Test></Test>
  <Test></Test>
  <Test></Test>
</div>

D.<Observer> 组件用法还没搞明白【特此记录一下,大神请说下它的用法】

import {Observer} from "mobx-react"
<Observer>
{
  ()=>{
       console.log(store.amount);
      return <div>
        <Test price={store.price} amount={store.amount} total={store.total}></Test>
        <Test price={store.price} amount={store.amount} total={store.total}></Test>
        
      </div>

  }
}
</Observer>

相关文章

  • React开发之【Mobx状态管理,非装饰器模式】

    React开发之【Mobx状态管理,非装饰器模式】 React项目装饰器开启失败, 下面是不用装饰器模式的写法 A...

  • create-react-app 和 mobx 实践

    创建应用 安装mobx和mobx-react 配置装饰器 decorator 编写mobx store 新建src...

  • Mobx 入门和进阶

    Mobx 数据管理模式,通过行为修改状态,然后更新到视图。 Mobx 的写法mobx 采用了ES7 语法的修饰器 ...

  • 03、react 使用mobx全局状态管理

    1、首先初始化react项目 2、下载mobx插件 使用mobx需要先安装装饰器插件, 要不然项目会报错下面是装饰...

  • Redux基础

    前端开发React用的很多,但它只是一个view,涉及到复杂的功能时就必须要用到Redux/Mobx等状态管理器,...

  • Redux中间件与异步操作

    前端开发React用的很多,但它只是一个view,涉及到复杂的功能时就必须要用到Redux/Mobx等状态管理器,...

  • React MobX 开始

    MobX[https://mobx.js.org/] 用于状态管理,简单高效。本文将于 React 上介绍如何开始...

  • react-native使用mobx全局状态管理

    1、初始化react-native项目 2、下载mobx 插件 3、配置装饰器插件 4、在项目目录下建一个Mobx...

  • React mobx 状态管理

    记录开发中关于mobx使用 问题1: mobx不更新视图,状态更改数据后不触发render发现是版本问题,在mob...

  • 使用umi+dva做一个demo

    最初只是使用react 进行开发项目,发现项目过大状态管理起来就相当困难,虽然有redux, mobx,但是使用起...

网友评论

      本文标题:React开发之【Mobx状态管理,非装饰器模式】

      本文链接:https://www.haomeiwen.com/subject/uljhqdtx.html