Angular uses a different strategy. We keep track of the old values for every binding to the view, and so we can detect which pieces of the view changed and update them in the real DOM.
Virtual DOM diffs the view, angular diffs the model.
From a performance standpoint neither approach is strictly better than the other. There are certain scenarios in which either approach has a slight advantage.