If you change the elements in a set, you need to re-evaluate how that set is rendered. Wether you leave it to the elements to decide if they are to be altered, or have that logic in the set-handling code, the book-keeping (and related CPU time) still needs to occur?
Either way, the proof is in the pudding: React is so insanely faster for this specific case than all other approaches.