「SDUDOC」前端Mobx状态管理设计与实现

SDUDOC实训记录 山东大学创新实训记录

选择Mobx的原因

使用管理状态的意义在于,把那些需要全局共享的状态和数据(例如登录状态、用户),统一交给一个容器(MobxStore)管理,并且希望当容器中任意一个状态更新时,所有引用或依赖该状态的组件/视图都更新。同时,出于性能考虑,更新的粒度要足够细(只有引用了该状态的部分更新,其他部分不更新)、更新的时机要足够及时(状态改变立即更新)、状态的更新要足够简单。因此,Mobx是不二之选,比Redux不知道高到哪里去了。

Mobx的使用

src/mobxStore/index.ts中,配置mobx规则,并定义我们需要的strore:
MobxStore
我们定义了两个状态对象,分别是User表示用户数据,Counter是一个计数器状态Demo,代码如下:

import {
    configure } from 'mobx';
import Counter from './counter';
import User from './user';

// mobx规范化,强制要求状态的改变必须通过@action方法完成
configure({
    enforceActions: 'observed' });

const user = new User();
const counter = new Counter();

export default {
    user, counter };

然后,在src/mobxStore/user.ts中,定义相关的数据与action,并指定autorun,例如这里的token,我们需要它与本地存储保持同步,可以这样写:

import {
    action, autorun, makeAutoObservable } from 'mobx';

export default class User {
   
  token = localStorage.getItem('user.token') || '';
  refreshToken = localStorage.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值