Flutter动作生成插件action_box_generator的使用

Flutter 动作生成插件 action_box_generator 的使用

A library for Dart developers.

使用

一个简单的使用示例:

import 'package:action_box/action_box.dart';
// 添加生成的文件
import 'example.config.dart';

[@ActionBoxConfig](/user/ActionBoxConfig)(
    // actionBoxType: 'ActionBox', // 默认值
    // actionRootType: 'ActionRoot',  // 默认值
    generateSourceDir: ['*']
)
final actionBox = ActionBox.shared();

特性和问题

请在 问题跟踪器 中提交功能请求和错误报告。


示例代码

如何使用 action_box_generator 插件的示例代码:

import 'package:action_box/action_box.dart';
// 添加生成的文件
import 'action_box_generator_example.a.b.dart';

[@ActionBoxConfig](/user/ActionBoxConfig)(
    // actionBoxType: 'ActionBox', // 默认值
    // actionRootType: 'ActionRoot',  // 默认值
    generateSourceDir: ['lib', 'example']
)
final actionBox = ActionBox.shared();

void main() {
  var bag = DisposeBag();
  
  // 使用 actionBox 进行数据请求
  actionBox((d) => d.ui.common.etc.e);
  actionBox((d) => d.ui.common.e);
  actionBox((d) => d.gateway.common.e);
  actionBox((d) => d.gateway.common.etc.c);

  // 请求数据
  actionBox((root) => root.valueConverter.getStringInStringOutValue)
      .go(param: 'test', channel: (c) => c.exCh1);

  // 订阅结果
  actionBox((d) => d.valueConverter.getStringInStringOutValue)
      .map(channel: (c) => c.exCh1 | c.exCh2)
      .listen((result) {
    print(result); // 打印结果
  }).disposedBy(bag);

  // 当完成时调用 dispose 方法
  // bag.dispose();
}

更多关于Flutter动作生成插件action_box_generator的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter动作生成插件action_box_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


action_box_generator 是一个 Flutter 插件,用于自动生成与动作(Actions)相关的代码,通常用于简化状态管理和事件处理的开发流程。这个插件可以帮助开发者减少手动编写重复代码的工作量,提高开发效率。

安装 action_box_generator

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

dependencies:
  flutter:
    sdk: flutter
  action_box: ^1.0.0  # 请使用最新版本

dev_dependencies:
  build_runner: ^2.1.0
  action_box_generator: ^1.0.0  # 请使用最新版本

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

使用 action_box_generator

  1. 创建 Action 类

    在你的项目中创建一个 Action 类,并使用 [@ActionBox](/user/ActionBox)() 注解来标记它。这个类将包含你想要生成的动作。

    import 'package:action_box/action_box.dart';
    
    [@ActionBox](/user/ActionBox)()
    class MyActions {
      void increment() {}
      void decrement() {}
    }
    
  2. 运行代码生成器

    在终端中运行以下命令来生成代码:

    flutter pub run build_runner build
    

    这将会生成一个与你的 Action 类相关的代码文件,通常命名为 my_actions.g.dart

  3. 使用生成的代码

    生成的代码将包含一个 MyActionsBox 类,你可以使用它来管理你的动作。

    import 'package:flutter/material.dart';
    import 'my_actions.g.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(title: Text('Action Box Example')),
            body: Center(
              child: Counter(),
            ),
          ),
        );
      }
    }
    
    class Counter extends StatelessWidget {
      final MyActionsBox actions = MyActionsBox();
    
      @override
      Widget build(BuildContext context) {
        return Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Counter'),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                IconButton(
                  icon: Icon(Icons.remove),
                  onPressed: actions.decrement,
                ),
                IconButton(
                  icon: Icon(Icons.add),
                  onPressed: actions.increment,
                ),
              ],
            ),
          ],
        );
      }
    }
回到顶部