[英]what is the difference between setState() and BLoC pattern in dart?
我正在尝试仅收集setState()
和 BLoC 模式之间的差异点。
& 刚刚收集到的一个不同点是:
1.) setState()
方法总是与Stateful Widget
一起使用但是 BLoC 模式可以与 Widget Stateless
或Stateful
。
所以我的问题是,两者之间的主要区别是什么,哪个更好更可靠?
setState((){})
用于管理同一个StatefulWidget
中的本地StatefulWidget
,它是 child 。
BLoC pattern
用于管理全局状态。
在这个例子中,如果你想将数据从WIDGET B2
传递到WIDGET A
:如果你使用StatefulWidget
你应该将数据从WIDGET B2
传递到WIDGET B1
到WIDGET B
到WIDGET A
。 但是如果您使用 BLoC 模式或其他方式来管理全局状态,则您可以直接将数据从WIDGET B2
传递到WIDGET A
[Provider][is recommended by flutter team , you can use it to manage global state]
经过大量搜索,我发现了主要区别,
基本上setState()
非常易于使用,它提供即时反馈,但它无助于实现我们的目标意味着 UI 呈现和业务逻辑,它们都在同一个类中,因此代码看起来不干净,高质量意味着代码在形式上看起来很混乱这就是为什么如果应用程序增长,代码维护在未来可能会变得具有挑战性。 但
在 bloc 模式中,所有声明在不同的类中意味着 UI 呈现在不同的类中定义,业务逻辑定义在不同的类中,因此代码看起来干净且高质量。
注意:如果应用程序很小,那么您可以自由使用setState()
但如果应用程序很大则不要使用setState()
您如何将数据从子或后代小部件传输到父小部件? 这就是为什么人们使用状态管理工具来替代 setState。 当你只做本地状态时,Setstate 是有效的,否则我们需要全局或应用程序级别的状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.