Flutter MVVM架构插件stacked_mvvm的使用
Flutter MVVM架构插件stacked_mvvm的使用
stacked_mvvm
Clean Architecture for Flutter
开始使用
本项目是一个用于Flutter的Dart包,它包含可以轻松共享到多个Flutter或Dart项目的库模块。
对于如何开始使用Flutter,您可以查看我们的在线文档,其中提供了教程、示例、移动开发指南以及完整的API参考。
基础组件
BaseView
BasePage
BaseWidget
BaseViewModel
BaseModel
示例代码
以下是main.dart
文件的示例代码:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'example_app.dart'; // 引入主应用类
void main() {
runApp(ExampleApp()); // 运行主应用
}
更多关于Flutter MVVM架构插件stacked_mvvm的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter MVVM架构插件stacked_mvvm的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
stacked_mvvm
是一个基于 Flutter 的 MVVM 架构插件,它结合了 stacked
和 provider
的优点,提供了一个简单且强大的 MVVM 架构实现。stacked_mvvm
提供了一种结构化的方式来管理 Flutter 应用的状态、业务逻辑和 UI 层。
安装
首先,你需要在 pubspec.yaml
文件中添加 stacked_mvvm
依赖:
dependencies:
flutter:
sdk: flutter
stacked_mvvm: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
基本概念
-
ViewModel: 负责处理业务逻辑和状态管理。
ViewModel
是ChangeNotifier
的子类,可以通过notifyListeners()
来通知 UI 更新。 -
View: 负责 UI 的展示和用户交互。
View
是一个StatefulWidget
,它通过ViewModel
来获取数据和响应状态变化。 -
Service: 负责处理与外部系统的交互,例如网络请求、数据库操作等。
使用步骤
1. 创建 ViewModel
首先,创建一个 ViewModel
类,继承自 BaseViewModel
。
import 'package:stacked_mvvm/stacked_mvvm.dart';
class CounterViewModel extends BaseViewModel {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners();
}
}
2. 创建 View
接下来,创建一个 View
,它负责展示 UI 并与 ViewModel
进行交互。
import 'package:flutter/material.dart';
import 'package:stacked_mvvm/stacked_mvvm.dart';
import 'counter_viewmodel.dart';
class CounterView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ViewModelBuilder<CounterViewModel>.reactive(
viewModelBuilder: () => CounterViewModel(),
builder: (context, viewModel, child) {
return Scaffold(
appBar: AppBar(
title: Text('Counter App'),
),
body: Center(
child: Text(
'Count: ${viewModel.count}',
style: TextStyle(fontSize: 24),
),
),
floatingActionButton: FloatingActionButton(
onPressed: viewModel.increment,
child: Icon(Icons.add),
),
);
},
);
}
}
3. 在应用中使用
最后,在你的应用中使用这个 View
。
import 'package:flutter/material.dart';
import 'counter_view.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter MVVM Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: CounterView(),
);
}
}
高级用法
依赖注入
stacked_mvvm
支持依赖注入,你可以通过 get_it
或其他依赖注入工具来管理 ViewModel
和 Service
的依赖关系。
导航
你可以使用 stacked_mvvm
提供的导航服务来处理页面跳转。
import 'package:stacked_mvvm/stacked_mvvm.dart';
class MyViewModel extends BaseViewModel {
final NavigationService _navigationService = locator<NavigationService>();
void navigateToNextPage() {
_navigationService.navigateTo('nextPage');
}
}