Actually, simply using &quot;track by&quot; in Angular puts it on par with React&#x27;s performance regardless of whether or not you follow React&#x27;s patterns. You do understand that Angular 1.x&#x27;s $scope is essentially a virtual DOM inasmuch as it&#x27;s a javascript representation of the DOM which provides a more efficient means of diffing (dirty checking in Angular&#x27;s case). &quot;Virtual DOM&quot; is just a fancy buzzword for React&#x27;s solution to figuring out what to change. React&#x27;s requirement that the entire DOM tree be re-rendered any time any state changes meant that dirty checking would be prohibitively expensive, so they had to come up with a clever workaround which, to their credit, ended up being just as performant as Angular&#x27;s dirty checking.<p>You can use Angular 1.x in exactly the same way you use React by only ever using 1-way binding and constructing your entire application out of directives scoped to elements. The only thing Angular 1.x doesn&#x27;t let you do is use JSX, but then again, you could just use plain old javascript and imperatively build up your DOM elements (which is what JSX does under the hood anyways) if you really don&#x27;t want to have .html files.