Flutter构建工具插件builders的使用
构建工具插件builders的使用 #
在任何系统注入器中使用 Consumer, Select 和 BlocConsumer。
如何安装 #
打开你的项目并编辑 pubspec.yaml 文件,添加 flutter_modular 作为依赖项:
dependencies:
builders: any
你也可以通过提供 Git 仓库地址来获取最新功能和修复:
dependencies:
builders:
git:
url: https://github.com/Flutterando/builders
配置你的系统注入器 #
你可以使用任何系统注入器,例如 Modular 或 Get_it。
void main(){
// 使用 Modular
Builders.systemInjector(Modular.get);
// 使用 Get_it
Builders.systemInjector(GetIt.I.get);
runApp(MyApp());
}
在你的Flutter应用中使用 #
这里有一些社区已知的 Builders。我们有来自 Provider 包的 Consumer 和 Selector,以及来自 flutter_bloc 包的 BlocConsumer。
消费者 #
当你想监听一个扩展了 ChangeNotifier 的类时,可以使用 Consumer。
class MyCounter extends ChangeNotifier {
int value;
void increment() {
value++;
notifyListeners();
}
}
在你的视图中:
Consumer<MyCounter>(
builder: (context, myCounter){
return Text('${myCounter.value}');
}
);
选择器 #
Selector 的工作方式与 Consumers 类似,但你可以只选择并监听对象的一个属性。
Selector<MyCounter, int>(
selector: (myCounter) => myCounter.value,
builder: (context, value){
return Text('$value');
}
);
BlocConsumer #
监听来自 bloc 包(Bloc 和 Cubit)的自定义流。
class MyCounterBloc extends Cubit<int> {
MyCounterBloc(): super(0);
void increment() => emit(state + 1);
}
在你的视图中:
BlocConsumer<MyCounterBloc, int>(
builder: (context, state){
return Text('$state');
}
);
功能和错误报告 #
请将功能请求和错误报告发送到 问题跟踪器。
此 README 是基于 Stagehand 提供的模板制作的,并遵循 BSD 风格的 许可证。
更多关于Flutter构建工具插件builders的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter构建工具插件builders的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,构建工具插件(Builders)通常用于在构建过程中生成或转换资源文件。这些插件可以通过build_runner
命令行工具来运行,并且通常依赖于build
包及其生态系统。以下是一个简单的示例,展示如何创建一个自定义的Builder以及如何使用它。
1. 设置项目
首先,确保你的Flutter项目已经设置好,并且pubspec.yaml
文件中已经包含了必要的依赖。你需要添加build_runner
和build
相关的依赖。
dependencies:
flutter:
sdk: flutter
dev_dependencies:
build_runner: ^2.1.4
build: ^2.1.1
2. 创建自定义Builder
接下来,你需要创建一个自定义Builder。这通常涉及几个步骤:定义Builder类、生成器函数以及build.yaml
配置文件。
2.1 定义Builder类
创建一个新的Dart文件,比如lib/builder/my_custom_builder.dart
,并定义你的Builder类:
import 'package:build/build.dart';
Builder myCustomBuilder(BuilderOptions options) {
return (BuildStep buildStep) async {
var inputId = buildStep.inputId;
var inputContent = await buildStep.readAsString(inputId);
// 在这里进行你需要的转换或生成逻辑
var outputContent = inputContent.replaceAll('hello', 'hi');
var outputId = inputId.changeExtension('.output.dart');
await buildStep.writeAsString(outputId, outputContent);
};
}
2.2 配置build.yaml
在项目的根目录下创建或编辑build.yaml
文件,以注册你的Builder:
builders:
my_custom_builder:
import: "package:your_package_name/builder/my_custom_builder.dart"
builder_factories: ["myCustomBuilder"]
build_extensions: {".dart": [".output.dart"]}
auto_apply: root_package
build_to: source
注意将your_package_name
替换为你的实际包名。
3. 使用Builder
现在你可以使用build_runner
命令行工具来运行你的Builder。
3.1 创建一个示例输入文件
在你的lib
目录下创建一个示例输入文件,比如example.dart
:
// lib/example.dart
String greet() => 'hello world';
3.2 运行Builder
在命令行中导航到你的项目根目录,并运行以下命令:
flutter pub run build_runner build --delete-conflicting-outputs
如果一切配置正确,你应该会在lib
目录下看到一个名为example.output.dart
的新文件,内容如下:
// lib/example.output.dart
String greet() => 'hi world';
总结
以上示例展示了如何创建和使用一个简单的自定义Builder。在实际项目中,你可能会需要更复杂的逻辑和配置,但基本的步骤和概念是相似的。通过自定义Builders,你可以在构建过程中自动化许多任务,从而提高开发效率。