Unverified Commit d571257a authored by Alberto's avatar Alberto Committed by GitHub

Updated Stateless and Stateful widget docstrings (#95407)

parent c746be66
...@@ -438,6 +438,14 @@ abstract class Widget extends DiagnosticableTree { ...@@ -438,6 +438,14 @@ abstract class Widget extends DiagnosticableTree {
/// * Use `const` widgets where possible, and provide a `const` constructor for /// * Use `const` widgets where possible, and provide a `const` constructor for
/// the widget so that users of the widget can also do so. /// the widget so that users of the widget can also do so.
/// ///
/// * When trying to create a reusable piece of UI, prefer using a widget
/// rather than a helper method. For example, if there was a function used to
/// build a widget, a [State.setState] call would require Flutter to entirely
/// rebuild the returned wrapping widget. If a [Widget] was used instead,
/// Flutter would be able to efficiently re-render only those parts that
/// really need to be updated. Even better, if the created widget is `const`,
/// Flutter would short-circuit most of the rebuild work.
///
/// * Consider refactoring the stateless widget into a stateful widget so that /// * Consider refactoring the stateless widget into a stateful widget so that
/// it can use some of the techniques described at [StatefulWidget], such as /// it can use some of the techniques described at [StatefulWidget], such as
/// caching common parts of subtrees and using [GlobalKey]s when changing the /// caching common parts of subtrees and using [GlobalKey]s when changing the
...@@ -646,11 +654,20 @@ abstract class StatelessWidget extends Widget { ...@@ -646,11 +654,20 @@ abstract class StatelessWidget extends Widget {
/// efficient for a widget to be re-used than for a new (but /// efficient for a widget to be re-used than for a new (but
/// identically-configured) widget to be created. Factoring out the stateful /// identically-configured) widget to be created. Factoring out the stateful
/// part into a widget that takes a child argument is a common way of doing /// part into a widget that takes a child argument is a common way of doing
/// this. /// this. Another caching strategy consists of assigning a widget to a
/// `final` state variable which can be used in the build method.
/// ///
/// * Use `const` widgets where possible. (This is equivalent to caching a /// * Use `const` widgets where possible. (This is equivalent to caching a
/// widget and re-using it.) /// widget and re-using it.)
/// ///
/// * When trying to create a reusable piece of UI, prefer using a widget
/// rather than a helper method. For example, if there was a function used to
/// build a widget, a [State.setState] call would require Flutter to entirely
/// rebuild the returned wrapping widget. If a [Widget] was used instead,
/// Flutter would be able to efficiently re-render only those parts that
/// really need to be updated. Even better, if the created widget is `const`,
/// Flutter would short-circuit most of the rebuild work.
///
/// * Avoid changing the depth of any created subtrees or changing the type of /// * Avoid changing the depth of any created subtrees or changing the type of
/// any widgets in the subtree. For example, rather than returning either the /// any widgets in the subtree. For example, rather than returning either the
/// child or the child wrapped in an [IgnorePointer], always wrap the child /// child or the child wrapped in an [IgnorePointer], always wrap the child
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment