在pubspec.yaml中添加

TODO: 此包尚未发布到pub.dev(也许将来会)

# cupertino_icons: ^1.0.2
  homura:
    git:
      url: https://github.com/lyuz1n/homura.git

导入

import 'package:homura/homura.dart';

注入永久控制器,例如Provider

TODO: 推荐路径 src/app/app_controllers.dart

abstract class AppControllers {
  static void init() {
    Homura.put(AppController());
    // Homura.put(OtherExampleController());
  }
}

在main中调用AppControllers的init方法

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  AppControllers.init();

  runApp(const App());
}

计数器应用示例

class AppController extends HomuraController {
  int count = 0;

  void increment() {
    count++;
    update();
  }
}

class AppView extends HomuraView<AppController> {
  const AppView({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: HBuilder(
          () => Text('counter: ${controller.count}'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.add),
        onPressed: controller.increment,
      ),
    );
  }
}

GitHub

查看 Github