React系列——状态管理神器Mobx

What?

Mobx是一个简单、可扩展的状态管理的库【文档地址】,它使用观察者模式来自动传播你的状态的变化到你的 React 组件。

React 和 MobX 是一对强力组合。React 通过提供机制把state渲染到组件,而MobX提供机制来存储和更新state供 React 使用。

核心思想: 任何源自应用状态的东西都应该自动的获得。
在这里插入图片描述

优势:

  • 响应式系统会检测到您的所有更改,并将其传播到使用它们的地方。
  • 所有数据更改和使用都会在运行时被跟踪,从而构建一个依赖关系树,捕获状态和输出之间的所有关系。
  • MobX 不受任何 UI 框架的限制,允许你独立管理应用程序状态。

How?

安装:

npm install mobx mobx-react 
或
yarn add mobx mobx-react-lite

案例一

import React from "react"
import ReactDOM from "react-dom"
import {
   
    makeAutoObservable } from "mobx"
import {
   
    observer } from "mobx-react-lite"

// 函数声明需要管理的state状态,和触发state改变的的actions
function createTimer() {
   
   
	// makeAutoObservable像加强版的makeObservable,默认情况下它将推断所有的属性。
	// 推断的规则为:所有的属性都成为observable,所有的方法都成为action,所有的计算属性都成为computed
    return makeAutoObservable({
   
   
        secondsPassed: 0,
        increase() {
   
   
            this.secondsPassed += 1
        },
        reset() {
   
   
            this.secondsPassed = 0
        }
    })
}

const myTimer = createTimer()

const TimerView = observer(({
   
    timer }) => (
    <button onClick={
   
   () => timer.reset()}>Seconds passed: {
   
   timer.secondsPassed}</button>
))

ReactDOM.render(<TimerView timer={
   
   myTimer} />, document.body)

setInterval(() => {
   
   
    myTimer.increase()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寧笙(Lycode)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值