# 介绍

# 什么是 ModernX?

ModernX 是一个现代化的 React 状态管理框架,基于 Redux、Redux-Saga 和 React Router 构建,专为 React 18 并发特性而优化。

# 🎯 设计理念

# 简单易用

  • 只有 6 个核心 API
  • 学习成本低
  • 开发效率高

# 性能优先

  • React 18 并发特性支持
  • 自动批处理优化
  • 智能依赖追踪

# 现代化

  • TypeScript 原生支持
  • Monorepo 架构
  • 完整的工具链

# 📦 架构概览

modernx/
├── modernx          # 主包,包含所有功能
├── modernx-core     # 核心功能
├── modernx-immer    # Immer 集成
└── modernx-loading  # Loading 状态管理

# 🔄 与 Redux 的关系

ModernX 基于 Redux 构建,但提供了更简洁的 API:

// Redux 写法
import { createStore, applyMiddleware } from 'redux';
import createSagaMiddleware from 'redux-saga';
import { Provider } from 'react-redux';

// ModernX 写法
import { createApp } from 'modernx';

const app = createApp({
  // models, plugins, etc.
});

# 🚀 React 18 增强

ModernX 针对 React 18 提供了专门的增强:

  • useDvaTransition: 基于 useTransition 的状态更新
  • useDvaConcurrentState: 基于 useDeferredValue 的延迟渲染
  • 自动批处理: 减少 30-50% 的重渲染
  • Strict Mode: 完全兼容 React 18 Strict Mode

# 🛠️ 核心概念

# Models

Models 是 ModernX 的核心概念,包含:

{
  namespace: 'count',
  state: 0,
  reducers: {
    add(state) { return state + 1; }
  },
  effects: {
    *asyncAdd({ payload }, { put }) {
      yield put({ type: 'add', payload: 1 });
    }
  }
}

# Subscriptions

订阅外部数据源:

subscriptions: {
  keyboard({ dispatch }, { take }) {
    window.addEventListener('keydown', (e) => {
      dispatch({ type: 'keydown', payload: e.keyCode });
    });
  }
}

# Plugins

扩展框架功能:

const app = createApp({
  plugins: [
    require('modernx-loading'),
    require('modernx-immer')
  ]
});

# 🌟 主要优势

# 1. 开发效率

  • 更少的样板代码
  • 内置最佳实践
  • 丰富的开发工具

# 2. 性能优化

  • React 18 并发特性
  • 智能依赖追踪
  • 自动批处理

# 3. 生态系统

  • 完整的插件系统
  • TypeScript 支持
  • 活跃的社区

# 4. 生产就绪

  • 经过大型项目验证
  • 完整的测试覆盖
  • 详细的文档

# 🎮 下一步

准备好开始使用 ModernX 了吗?

# 💡 为什么选择 ModernX?

# 如果你喜欢 Redux

ModernX 提供了 Redux 的所有功能,但 API 更简洁。

# 如果你需要 React 18 特性

ModernX 原生支持所有 React 18 并发特性。

# 如果你想要 TypeScript

ModernX 提供完整的 TypeScript 定义和类型安全。

# 如果你需要高性能

ModernX 针对 React 18 进行了专门的性能优化。

ModernX 旨在提供现代化的 React 状态管理体验,让你专注于业务逻辑而不是框架配置。

Last Updated: 1/18/2026, 5:36:04 AM