I'm newly learning and creating simple app using flutter.
I created drawer inside Scaffold for some pages and I got confused if when I click the ListTiles, should it be routing the pages or just switch the body widget using setState().
I guess setState() must perform better but I'm not sure if this is a good practice for pages. If it does not have a big difference in performance, I would like to use routing the pages since it will be uniformed.
CodePudding user response:
Personal opinion:
- Avoid separating widgets into functions, use StatelessWidget instead. Cause every render function will rebuild whatever parameter changes.
- Avoid using
setState
as much as possible, especially for large Widgets, instead use provider, get or simply use ValueNotifier if you dont want library. CausesetState
will mark all things to be rerender include widgets that not need to be rerender. - Do not render too many things at once, if possible only render the views that are / are about to be displayed. Example using ListView.builder instead of ListView, ... etc
- With image, please resize to suit your needs, a 2000x2000 image loaded as a 24x24 icon is clearly not a good idea.
- using
const
.
CodePudding user response:
I'd suggest to redirect user to the next page as it won't require a StatefulWidget
(you can use navigator to navigate user to another activity) which will be lighter to run, as if you use IndexedStack or dynamically assign the widget it'll require the StatefulWidget
..