title: Does setState rebuild the whole widget tree for a screen in flutter and how does it compare with other State management
body: <p>I'm kinda confused, I have been looking into state management with flutter recently and I was wondering what happens if a custom stateful widget is placed in a stateless widget, let's say widgetA (parent) is a stateless widget and it has a child WidgetB which is a stateful widget and another child WidgetC which is a stateless widget.</p>
  <p>Now my questions are:</p>
  <ul>
  <li>if setState() is called from widgetB, are WidgetA, B, and C rebuilt?</li>
  <li>how does this compare to using different state Management techniques like State provider, stream builders, or Bloc?</li>
  <li>when to use setState()?</li>
  <li>is it smart to combine multiple State management techniques?</li>
  </ul>
  <p><strong>if you have external links or resources that can help me understand please provide them</strong></p>