Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azhon/module_bridge
Dart modular development, event communication library. Dart模块化开发,事件通信库。
https://github.com/azhon/module_bridge
communication dart flutter modular
Last synced: about 2 months ago
JSON representation
Dart modular development, event communication library. Dart模块化开发,事件通信库。
- Host: GitHub
- URL: https://github.com/azhon/module_bridge
- Owner: azhon
- License: apache-2.0
- Created: 2022-11-20T02:59:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T07:08:38.000Z (3 months ago)
- Last Synced: 2024-12-01T14:46:39.268Z (2 months ago)
- Topics: communication, dart, flutter, modular
- Language: Dart
- Homepage:
- Size: 1.15 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-zh.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## Dart 模块化开发事件通信库
### Step1
安装 [FlutterModuleBridge](https://plugins.jetbrains.com/plugin/20491-fluttermodulebridge) 插件.
2.添加依赖 [latest_version](https://pub.dev/packages/module_bridge)
```
dependencies:
module_bridge: ^latest_version
```### Step2
#### 在`/lib`目录下创建通信模板```java
import 'package:module_bridge/module_bridge.dart';class UserBridge with Bridge {
@Url(url: '/user/getUserId', desc: '获取用户Id')
Future> getUserId(Map params) {
return R.ok(data: 1234);
}@Url(url: '/user/getUserName', desc: '获取用户名称')
Future> getUserName(Map params) async {
return R.ok(data: 'azhon');
}
}
```
⚠️注意
- 一个dart文件只能有一个class
- class必须`with Bridge`
- 方法必须使用`@Url`注解
- 方法参数必须是`Map`,返回值必须是`R`或者`Future`类型### Step3
1.使用 `FlutterModuleBridge` 插件生成类
2.在子模块创建Module并在`register`回调内注册事件
```java
class UserModule extends BaseModule {
@override
void register() {
BridgeManager.instance.register(UserModuleBridge.instance.bridges);
}@override
void unregister() {}
}
```
3.在主项目中初始化子模块```java
ModuleManager.add(UserModule());
```### Step4
- 在任何模块中通过如下方式进行通信```java
var r = await BridgeManager.instance.get('/user/getUserId');
```
- 或者在`build`函数中使用```java
BridgeBuilder(
bridge: '/user/getUserId',
builder: (_, data) {
/// data有可能为空
return Text('通过BridgeBuilder获取数据:$data');
},
),
```