这是我的github项目链接https://github.com/RajTechnologiesPvtLtd/flutter-moonlight如何转换到MVC模式,并给出了相应的建议.使用MVC模式创建自己的框架
k4emjkb11#
我认为问题在于你要理解什么是MVC。从我的理解来看,M-V-C的概念是抽象的,可以在flutter中使用不同的状态管理包
Model:Model表示您的类
class ExampleClass { final String name; ExampleClass({required this.name}); }
控制器:这是你处理业务逻辑的地方,你可以使用Bloc包,Getx包,Provider包等等。
class ExampleController extends ChangeNotifier { final ExampleClass? _data; ExampleClass? get data => _data; setMyClass(ExampleClass value) { _data = value; notifyListeners(); } }
然后查看(您的UI页面):使用Controllers,您可以尝试管理UI的所有状态,并保持UI简单且仅用于UI。
class ExampleUI extends StatelessWidget { const ExampleUI({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( body: Column( children: [ Consumer<ExampleController>(builder: (ctx, controller, v) { return TextButton( onPressed: () { controller.setMyClass(ExampleClass(name:'Bhargav Raviya')); }, child: Text(controller.data!= null ? controller.data.name :'Button')); }), ], ), ); } }
1条答案
按热度按时间k4emjkb11#
我认为问题在于你要理解什么是MVC。从我的理解来看,M-V-C的概念是抽象的,可以在flutter中使用不同的状态管理包
Model:Model表示您的类
控制器:这是你处理业务逻辑的地方,你可以使用Bloc包,Getx包,Provider包等等。
然后查看(您的UI页面):使用Controllers,您可以尝试管理UI的所有状态,并保持UI简单且仅用于UI。