Flutter工具集插件semibox_mobx_base_utils的使用

Flutter工具集插件semibox_mobx_base_utils的使用

pub points semibox_mobx_base_utils-like Package License

Semibox mobx base utils

这是一个包,包含函数和小部件以使应用程序开发更快更方便。目前它由一个开发者开发。

Support

1. Base screen

[BaseScreen] 是应用程序中所有屏幕的基础类。

  • 它为屏幕提供了一些有用的方法。
  • 每个屏幕都应该继承此基类。
  • 示例:
class MyHomePage extends BaseScreen {
     const MyHomePage({Key? key}) : super(key: key);
     [@override](/user/override)
     State<MyHomePage> createState() => _MyHomePageState();
}

2. BaseScreenState

[BaseScreenState] 是应用程序中所有屏幕状态的基础类。

  • 它提供了 [store]
  • 使用 AutomaticKeepAliveClientMixin 可以在用户导航到其他屏幕时保持屏幕活动。
  • 它还提供了 [initState] 方法来初始化 [store] 实例。
  • 它还提供了 [build] 方法来构建屏幕。
  • 每个屏幕状态都应该继承此基类。
  • [BaseScreenState] 是一个有状态的小部件。
  • 示例:
class _MyHomePageState extends BaseScreenState<MyHomePage, MainStore> {}

2. Store

State managements

/// 在更新前清理:
///    flutter packages pub run build_runner watch --delete-conflicting-outputs

part 'example_store.g.dart';

class ExampleStore = _ExampleStore with _$ExampleStore;

abstract class _ExampleStore with Store, BaseStoreMixin {
  [@override](/user/override)
  void onInit(BuildContext context) {}

  [@override](/user/override)
  void onDispose() {}
}

完整示例Demo

以下是一个完整的示例,展示了如何使用 semibox_mobx_base_utils 包来创建一个简单的应用。

main.dart

import 'package:flutter/material.dart';
import 'package:semibox_mobx_base_utils/semibox_mobx_base_utils.dart';
import 'example_store.dart'; // 引入你的 Store 类

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends BaseScreen {
  const MyHomePage({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends BaseScreenState<MyHomePage, ExampleStore> {
  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化 Store
    store.onInit(context);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '${store.someValue}', // 假设你有一个名为 someValue 的变量
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 更新 Store 中的数据
          store.updateSomeValue();
        },
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

example_store.dart

// 这个文件通常通过 build_runner 自动生成
part 'example_store.g.dart';

class ExampleStore = _ExampleStore with _$ExampleStore;

abstract class _ExampleStore with Store, BaseStoreMixin {
  [@observable](/user/observable)
  int someValue = 0;

  [@action](/user/action)
  void updateSomeValue() {
    someValue++;
  }

  [@override](/user/override)
  void onInit(BuildContext context) {
    // 初始化操作
  }

  [@override](/user/override)
  void onDispose() {
    // 清理操作
  }
}

更多关于Flutter工具集插件semibox_mobx_base_utils的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter工具集插件semibox_mobx_base_utils的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


semibox_mobx_base_utils 是一个 Flutter 插件,旨在简化和加速开发者在 Flutter 项目中使用 MobX 进行状态管理的流程。它提供了一系列实用工具和基础类,帮助开发者更高效地管理应用状态、处理数据流以及构建响应式应用。

以下是关于 semibox_mobx_base_utils 插件的基本使用指南:

1. 安装依赖

首先,你需要在 pubspec.yaml 文件中添加 semibox_mobx_base_utils 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  mobx: ^2.0.0
  flutter_mobx: ^2.0.0
  semibox_mobx_base_utils: ^1.0.0  # 请根据实际版本号进行替换

然后运行 flutter pub get 安装依赖。

2. 引入插件

在你的 Dart 文件中引入插件:

import 'package:semibox_mobx_base_utils/semibox_mobx_base_utils.dart';

3. 创建 Store

使用 semibox_mobx_base_utils 提供的基类来创建你的 MobX Store。插件通常提供了一个 BaseStore 类,你可以继承它并在自己的 Store 类中添加自定义的响应式属性和方法。

import 'package:mobx/mobx.dart';
import 'package:semibox_mobx_base_utils/semibox_mobx_base_utils.dart';

part 'counter_store.g.dart';  // 自动生成的代码

class CounterStore = _CounterStore with _$CounterStore;

abstract class _CounterStore extends BaseStore with Store {
  @observable
  int count = 0;

  @action
  void increment() {
    count++;
  }
}

4. 使用 Store 在 UI 中

使用 ObserverReactiveWidget 来监听 Store 中的变化,并在 UI 中显示或响应这些变化。

import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'counter_store.dart';

class CounterPage extends StatelessWidget {
  final CounterStore counterStore = CounterStore();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Counter Example'),
      ),
      body: Center(
        child: Observer(
          builder: (_) => Text(
            'Count: ${counterStore.count}',
            style: TextStyle(fontSize: 24),
          ),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: counterStore.increment,
        child: Icon(Icons.add),
      ),
    );
  }
}

5. 自动代码生成

MobX 使用代码生成器来自动生成一些必要的代码。确保你已经安装了 build_runner 并运行以下命令生成代码:

flutter pub run build_runner build
回到顶部