响应式的编程框架中都会有一个永恒的主题——“状态管理”,无论是在React/Vue(两者都是支持响应式编程的web开发框架)还是Flutter,他们讨论的问题和解决的思想都是一致的。所以,如果你对React/Vue的状态管理有了解,可以跳过本节。言归正传,我们想一个问题,stateful widget的状态应该被谁管理?widget本身?父widget?都会?还是另一个对象?答案是取决于实际情况!以下是管理状态的最常见的方法:
Widget管理自己的state。
父widget管理子widget状态。
混合管理(父widget和子widget都管理状态)。
如何决定使用哪种管理方法?以下原则可以帮助你决定:
如果状态是用户数据,如复选框的选中状态、滑块的位置,则该状态最好由父widget管理。
如果状态是有关界面外观效果的,例如颜色、动画,那么状态最好由widget本身来管理。
如果某一个状态是不同widget共享的则最好由它们共同的父widget管理。
网友评论