[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3vt26w2bhuf2a":3},{"_id":4,"slug":5,"title":6,"subtitle":7,"kind":8,"cards":9,"tags":58,"categories":60,"source":62,"lang":65,"author":66,"audioState":69,"stats":70,"publishedAt":73,"renderer":74},"6aba853eca21c797c7e99f67","react-and-vue-are-turning-into-the-same-framework-0404072e","React and Vue Are Turning Into the Same Framework","Before diving into this article, I have to say that I haven't been a front-end developer for a very, very long time 😁 I just analyze architectures and enjoy listening to people who argue about what's best to use on the front end.","news",[10,13,18,23,28,33,38,43,48,53],{"headline":6,"body":11,"imageUrl":12,"sourceImageUrl":12},"Before diving into this article, I have to say that I haven't been a front-end developer for a very, very long time 😁 I just analyze architectures and enjoy listening to people who argue about what's best to use on the front end. So I might be wrong about some things. 🤷‍♂️🤷‍♂️🤷‍♂️ Please correct me if I'm wrong!","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faelxfbcuautj48eyvzzy.jpg",{"headline":14,"body":15,"imageUrl":16,"images":17},"Recently, I came across a team that was","Recently, I came across a team that was rewriting a project from Vue to Ract, and their argument was that Vue runs slower. 😬 This made me wonder, why does Vue run slower? And it turned out that the Vue code had been generated but not optimized.","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F1.webp",{"local":16},{"headline":19,"body":20,"imageUrl":21,"images":22},"And while there were a lot of questions","And while there were a lot of questions about the code generation itself in the Vue project, the team didn’t have any questions at all about the generated code in the React project because everything works well there. 🤔🤨 But I won’t go into that right now, I’d rather analyze everything in detail and describe it in another article.","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F2.webp",{"local":21},{"headline":24,"body":25,"imageUrl":26,"images":27},"I won't go into a detailed comparison either","I won't go into a detailed comparison either, since there's plenty of that online. I'll just list the three main popular aspects below. Some add a fourth about templates versus JSX. That one's taste, so I'll leave it alone.","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F3.webp",{"local":26},{"headline":29,"body":30,"imageUrl":31,"images":32},"Every row in that table is out of","Every row in that table is out of date or about to be. React now ships a compiler that writes the memoization for you, and Vue is finishing a compile mode that drops the virtual DOM for any component that opts in. The two of them started from opposite ends of the same old argument and ended up in roughly the same spot: a build step that works out what doesn't need to run.","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F4.webp",{"local":31},{"headline":34,"body":35,"imageUrl":36,"images":37},"That's why I think this is the first","That's why I think this is the first year the interesting React vs Vue question isn't a technical one. They aren't the same framework. There's a whole section below on where they still split, but the three talking points everyone reaches for are exactly the three that are dissolving. React's Memoization Moved Into The Build","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F5.webp",{"local":36},{"headline":39,"body":40,"imageUrl":41,"images":42},"React's default is simple and a bit blunt","React's default is simple and a bit blunt. The memo docs say it in one line: \"React normally re-renders a component whenever its parent re-renders.\" For years the fix was to tell React by hand what was safe to skip. Here's what that looks like in a small product list with a search box and rows you can pick: ProductList.jsx (by hand, before the compiler)","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F6.webp",{"local":41},{"headline":44,"body":45,"imageUrl":46,"images":47},"There are three tools here and two of","There are three tools here and two of them only work as a pair. memo lets a row skip rendering when its props look the same as last time. useCallback keeps onPick the same function between renders. That part matters. A fresh function counts as a changed prop and quietly defeats the memo. Forget the useCallback and the memo still compiles, still passes review, still looks perfectly responsible in the diff. It just skips nothing. useMemo is the odd one out. It keeps the filter from running again when the only thing that changed is picked.","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F7.webp",{"local":46},{"headline":49,"body":50,"imageUrl":51,"images":52},"The React team was blunter about all this","The React team was blunter about all this than I'd be, and in the React Labs post from February 2024 they wrote that \"manual memoization is a compromise. It clutters up our code, is easy to get wrong, and requires extra work to keep up to date.\"","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F8.webp",{"local":51},{"headline":54,"body":55,"imageUrl":56,"images":57},"React Compiler 1.0 shipped in October 2025 and","React Compiler 1.0 shipped in October 2025 and works with React 17 and up. For new code the release post recommends \"relying on the compiler for memoization and using useMemo\u002FuseCallback where needed to achieve precise control.\" Expo has had it on by default since SDK 54. Next.js 16 made the reactCompiler option stable but left it off by default while the team gathers build performance data (they also warn that builds get slower with it on, since the compiler runs through Babel, and the Rust port that runs inside Turbopack only showed up in Next.js 16.3 in August 2026 as an experimental flag). So \"React memoizes for you now\" is true, with a footnote: on the most popular React framework, somebody still has to flip a switch first.","\u002Fapi\u002Fmedia\u002Fposts\u002Freact-and-vue-are-turning-into-the-same-framework-0404072e\u002F9.webp",{"local":56},[59],"dev",[61],"Technology",{"name":63,"url":64},"Dev.to","https:\u002F\u002Fdev.to\u002Fnazar-boyko\u002Freact-and-vue-are-turning-into-the-same-framework-2aph","en",{"handle":67,"displayName":68},"spots","Spots","queued",{"views":71,"likes":72,"saves":72,"shares":72,"completions":72,"opens":72,"skips":72,"depthSum":72},3,0,"2026-09-28T15:18:22.694Z","local"]