title: Which Widgets should I make stateful?
body: <p>So imagine I have an app (standard material scaffold) with a drawer, app bar, body etc.</p>
  
  <p>I'm now thinking what is the correct way to implement it, given I essentially <strong>don't want any state in the widgets</strong> (i.e. I want to keep state (data) in dedicated model/store/controller classes and keep widgets only responsible for UI/pixels).</p>
  
  <p>I could make the top-level, root app widget stateful and then <code>setState((){})</code> (note the dummy callback, which I'd use just to trigger the rebuild) whenever the controller(s) tell me to. The child widgets would then get rebuilt and would read the values they're interested in from the stores/models/...</p>
  
  <p>I could make the top-level widget stateless and only mark the leafs as stateful.</p>
  
  <p>Given Flutter claims to be optimized for frequent <code>Widget</code> rebuilds, is one option significantly better than the other? I'd bet the leaf approach might be more performant, but it's much more verbose (2x the classes).</p>