以下是一个简化的 Flutter 应用程序的 MVVM 架构示例。这个例子中,我们使用 provider
包来实现 ViewModel
的状态管理,并且使用 flutter_riverpod
作为状态管理的解决方案。
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
// ViewModel
class MyViewModel {
final String title;
MyViewModel(this.title);
}
// View
class MyView extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
// 获取 ViewModel
final viewModel = ref.watch(myViewModelProvider);
return Scaffold(
appBar: AppBar(
title: Text(viewModel.title),
),
body: Center(
child: Text('Hello, world!'),
),
);
}
}
// provider for ViewModel
final myViewModelProvider = Provider<MyViewModel>((ref) {
return MyViewModel('MVVM Example');
});
void main() {
runApp(ProviderScope(child: MyApp()));
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyView(),
);
}
}
在这个例子中,我们定义了一个 MyViewModel
类来处理应用程序的业务逻辑,并在 MyView
类中使用 ConsumerWidget
来响应 ViewModel
的变化。我们使用 Provider
来创建 ViewModel
的实例,并在 main
函数中将其放入 ProviderScope
中,这样就可以在整个应用程序中使用 ViewModel
了。这个例子展示了如何将 MVVM 架构的概念应用到 Flutter 应用程序的开发中。