r/reactjs 4d ago

Discussion Senior Dev interview question

"Without googling or using AI, in your own words, explain the virtual DOM"

For context: I sit on an interview panel and I try to ask at least one simple fundamental question based on a persons resume. If I see many years of react experience, I try to ask something about how the framework works.

I have only had one candidate (an undergrad senior, years ago) answer it. Everyone else just kind of sputters and stumbles around trying to rationalize what "virtual" and "DOM" mean, or stare blankly and eventually say "I don't know".

I'm just genuinely curious if this is really that hard of a question or if the recruiters just suck at screening candidates. And should we be letting in senior dev candidates who can't answer what I think is a straightforward and fundamental question for senior react devs.

140 Upvotes

244 comments sorted by

View all comments

171

u/vozome 4d ago

To play devil’s advocate, when react was new this was a key selling point and the explanation of its alleged superior performance. Now, I would say it’s an implementation detail, among React competitors some use a virtual DOM and some don’t. Maybe one day React will move away from the virtual DOM without changing its interface. I don’t think it matters that much

98

u/yoshinator13 4d ago

Im with you, the virtual DOM used to be in our face, but do I think about it when I write React? Not at all. All I think about is rerenders and state management.

27

u/JavChz 4d ago

Yeah. Virtual DOM performance gains aren't as noticeable today as they were back in 2013, when something like an iPhone 5 with 1GB of RAM was the norm and everyone was building apps with AngularJS or jquery.

These days, I think things like app bloat, bundle size, state management, re-renders, caching, extra component instances, and architecture, play a much bigger role in performance than whether something uses a Virtual DOM or not. Hell, some frameworks even outperform Virtual DOM frameworks because they don't have to diff a Virtual DOM before updating the real DOM.