Flutter依赖注入插件karee_injectable_gen的使用

Flutter依赖注入插件karee_injectable_gen的使用

使用

一个简单的使用示例:

import 'package:karee_injectable_gen/karee_injectable_gen.dart';

void main() {
  var awesome = new Awesome();
}

特性和错误报告

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


完整示例Demo

以下是一个完整的示例代码,展示了如何使用karee_injectable_gen插件进行依赖注入。

示例代码

import 'package:build/build.dart';
import 'package:karee_inject/karee_inject.dart';
import 'package:karee_injectable_gen/karee_injectable_gen.dart' as gen;

// 定义一个服务类
[@Service](/user/Service)
class InjectableService {
  // 定义一个方法返回一个整数
  int testService() {
    return 3;
  }
}

void main() {
  // 使用serviceBuilder构建服务
  gen.serviceBuilder(BuilderOptions.forRoot);
}

更多关于Flutter依赖注入插件karee_injectable_gen的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter依赖注入插件karee_injectable_gen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


karee_injectable_gen 是一个基于 Flutter 的依赖注入插件,它通过代码生成的方式简化了依赖注入的过程。这个插件通常与 karee 框架一起使用,但也可以独立使用。下面是如何使用 karee_injectable_gen 的详细步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 karee_injectablekaree_injectable_gen 的依赖。

dependencies:
  karee_injectable: ^1.0.0

dev_dependencies:
  karee_injectable_gen: ^1.0.0
  build_runner: ^2.0.0

2. 创建注入配置文件

在你的项目中创建一个 Dart 文件(例如 injection.dart),并在其中使用 @injectableInit 注解来配置依赖注入。

import 'package:karee_injectable/karee_injectable.dart';
import 'injection.config.dart'; // 这个文件将由代码生成工具生成

@injectableInit
void configureDependencies() => $initGetIt();

3. 标记可注入的类

在你的项目中,使用 @injectable 注解来标记那些你想要通过依赖注入管理的类。

import 'package:karee_injectable/karee_injectable.dart';

@injectable
class MyService {
  void doSomething() {
    print('Doing something...');
  }
}

4. 生成注入代码

运行 build_runner 来生成注入代码。在终端中执行以下命令:

flutter pub run build_runner build

这个命令会生成 injection.config.dart 文件,其中包含了依赖注入的配置代码。

5. 初始化依赖注入

在你的应用程序的入口点(通常是 main.dart 文件)中调用 configureDependencies 函数来初始化依赖注入。

import 'injection.dart';

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

6. 使用依赖注入

现在你可以在你的应用程序中使用依赖注入来获取 MyService 的实例。

import 'package:karee_injectable/karee_injectable.dart';
import 'my_service.dart';

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    final myService = getIt<MyService>();
    myService.doSomething();
    
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Demo Home Page'),
        ),
        body: Center(
          child: Text('Hello, world!'),
        ),
      ),
    );
  }
}
回到顶部