Interview frequency: …
Short answer
You describe the UI that results from the current state, and when the state changes Flutter rebuilds the description instead of you asking to modify each element by hand.
Explanation
In the declarative model you write what should appear for a given state, and Flutter compares the new widget tree and applies the change to the UI. This reduces scattered mutation commands, but it requires managing state, keys, and widget identity correctly.
Code example
Widget build(BuildContext context) {
return Text(isLoading ? "Loading" : "Ready");
}Common mistakes
- Treating build as a direct drawing of every pixel.
- Mutating state inside build instead of changing it in an event or controller.