title: setState() vs notifyListeners(), which one is more efficient?
body: <p>I always aim to make my widgets <code>Stateless</code> instead <code>Stateful</code> for performance benefits. In some cases(updating the <code>BottomNavigationBar</code> index e.g.) <code>notifyListeners()</code> can provide identical functionality of the <code>setState()</code>.</p>
  
  <p>At first, I think <code>notifyListener()</code> is lower level, more fundemantal function comparing to <code>setState()</code>, so it should be more efficient. Because <code>setState()</code> method may triggers too many higher level <code>framework</code> methods, so it may spends more CPU power.</p>
  
  <p>But it's hard to be sure without making a proper and detailed performance testing. So what is the answer?</p>
  
  <p>Edit: Also, in some cases, <code>notifyListeners()</code> behaves exactly like <code>setState()</code>. For example, I have <code>Text</code> widget inside a <code>StatelessWidget</code> that holds a <code>Random</code> value and when I notify the an unrelated value inside the Class, the <code>Text</code> widget is also getting update. So, what is the difference?</p>