Is it a good practice to use provider in place of setstate talking for MVVM architecture and in general also? Does provider rebuilds the whole app widget tree like if i trigger it in second page than will 1st page also be rebuilt, if so then how can we use it more effectevly?