fast_module 1.3.1 copy "fast_module: ^1.3.1" to clipboard
fast_module: ^1.3.1 copied to clipboard

flutter 组件化容器

example/lib/main.dart

import 'package:example/app/moduleA/detail/bindings/detail_binding.dart';
import 'package:example/app/moduleA/detail/views/detail_view.dart';
import 'package:example/main_moudle.dart';
import 'package:fast_module/fast.dart';
import 'package:fast_module/fast_module_protocol.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

void main() {
  //   MainMoudle  ModuleA   ModuleB  ModuleC  都一样, 都可以执行sdk初始化, 路由配置 等等
  //   init 顺序自上而下
  Fast.registerBuilder((manager) {
    manager.register(MainMoudle());
    manager.register(ModuleA());
    manager.register(ModuleB());
    manager.register(ModuleC());
  });

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    //  Fast.pages =  MainMoudle + ModuleA + ModuleB + ModuleC + ...
    //  主项目如果也有路由,
    return GetMaterialApp(
      title: 'Flutter Demo',
      getPages: Fast.pages,
      home: Text('省略...'),
    );

    // return GetMaterialApp(
    //   title: 'Flutter Demo',
    //   onGenerateRoute: Fast.onGenerateRoute,
    //   home: Text('省略...'),
    // );
  }
}

/*
主项目: 依赖的子模块

主项目: pubspec.yaml 文件结构

dependencies:
  flutter:
    sdk: flutter

  ModuleA:
    path: ../ModuleA
  ModuleB: ^1.0.0
  ModuleC: 
    git: 
      url: 'git.com'
      ref: 1.0.0



模块A, 目录结构: 
 lib
   src
      业务代码
   ykq_ble_modules.dart
   main.dart 
*/

// ModuleA 实现,  此处detail 是借用主工程
class ModuleA extends FastModuleProtocol {
  // 提供子模块路由
  // @override
  // GetPageRoute? onGenerateRoute(RouteSettings settings) {
  //   switch (settings.name) {
  //     case: 'module/A'
  //        return GetPageRoute(settings:settings,page:()=>A(),bindings:ABingdings());
  //     default:
  //       return null;
  //   }
  // }

  // 此处detai是借用

  final getPages = [
    GetPage(name: '/detail', page: () => DetailView(), binding: DetailBinding()),
    // GetPage(name: '/order', page: order(), binding: orderBindings()),
    // GetPage(name: '/address', page: address(), binding: addressBindings()),
  ];

  // 接收其他模块发送的消息
  @override
  onReceivedMessage(String eventName, arguments) {
    return super.onReceivedMessage(eventName, arguments);
  }

  // 子模块的初始化任务
  @override
  void init() {
    //  埋点.init();
    //  SP.init();
    //  ...
  }
}

// 跟A 一样
class ModuleB extends FastModuleProtocol {}

// 跟A 一样
class ModuleC extends FastModuleProtocol {}
2
likes
125
pub points
2%
popularity

Publisher

unverified uploader

flutter 组件化容器

Documentation

API reference

License

unknown (LICENSE)

Dependencies

flutter, get

More

Packages that depend on fast_module