Hacker News new | ask | show | jobs
by sidhuko 1587 days ago
I joined a company with a Vue app just before the Vue 3 release. I don’t think anyone believes it was a soft launch. Then the tooling like nuxt did the same with a v3 release countdown timer which only then released it was in beta with no support in their ecosystem. You could pay 10k for a consultancy though. I only wanted webpack v5 to be able to use federated modules to give us more migration options. The whole experience reminds me of Angular.js to Angular so I was quick to jump ship and spend the migration effort for v3 in moving to react. We spoke to a contributor too that basically told us we should wait for v3 because currently it’s not really built for SPA. Vue 2 was a web application framework and I could see the benefits for php/python/ruby frameworks with losing JSX and being more understandable for fullstack engineers in smaller teams who might not know React. They have now made a direct competition with React though and badly implemented a lot of apis (simple things like grepability and codemods are lacking). They struggled with this release for a year and now they are still behind where React is focusing on server components, concurrent rendering and the tools we need for WASM to be implemented in the most performant ways now ie11 is officially leaving support this year. Some have said it here too that the whole ecosystem felt beta and now the largely community based ecosystem is either leading to vue3-* packages which just make an upgrade to Vue 3 a full on migration.
3 comments

You are doing a full migration to React because of the update from Vue2 to Vue3? I read the Vue3 docs for the key differences and it looks a lot easier to migrate to Vue3 than React....
The question is what next? Our team had already started migration from vuex to solely using Apollo. Apollo then changed their own standards like depreciating local resolvers. Vue 3 release seemed to change regularly from will it or won't it support ie11 and various other additional packages. It is fairly easy to build React-in-Vue code to do a similar migration but the "experts" in Vue often just live in the short term without really committing too a level of support that an enterprise team needs with 20-30 developers. With React I'm sure any major changes will be a phased thing so I can continue to upgrade through the major releases for new features while updating code to new patterns. There is usually codemods to automate any changes because the coding patterns are highly developed to be testable and consistent to change. Similar support exists around the community of packages like Redux. Vue is stretched across multiple projects like state management, build tooling and DX while genuinely being behind the curve in best practices like testing and static code analysis. A Vue 2 to 3 migration is really a complete overhaul of every component to allow you to upgrade to v3. That is a huge liability of an inexperienced team who I expect to make similar mistakes with their community.
Dunno dude...your team changed from Vuex to Apollo and then from Vue to React...if I were to guess, next year you will be making other changes....is the constant variable here the framework/tech or your team!?
It is the way of these type of early projects and generally you have some organisational and technical debt either direction but receiving downstream features while supporting legacy code is the general way in React. It was going to be a Vue 2 to Vue 3 migration but moving to React should take us out of these higher frequency changes from Vue ecosystem. I don't see you rebutting or adding anything technically here. I wasn't responsible for the original stack and no we have a roadmap for the next year or two which is the same tooling give or take. Avoiding the high breaking change libs like apollo for URQL and using their cache for simple queries and Redux when we need more.
Vite replacing Webpack has made adopting Vue much easier FWIW. Webpack 5 was never properly supported with Vue 2 in my experience with Rails.

But Vite was a basically adding a single gem and it worked. I wasted so much time with broken Webpack stuff.

Ecosystem is as important as the frameworks.

Yeh it is why I put Vue as a great web application framework for developers not specialised in frontend solutions. They've been fragmenting their community there by becoming an SPA framework to compete with React. Vite is a good tool but we have many others that are simple to use. This one is just has 1st class support for Vue because it comes from the core contributors. The general ecosystem for vue though is a third party package which integrates something like vue and apollo together. Which is not supported by the vendor and falls behind major releases or makes drastic changes to fit new major releases of the Vue framework. You will find a lot of vendors not supporting Vue directly and those unmaintained projects are leaving you behind in feature set or using new anti-patterns and creating tech debt.
vue3 is still much easier for newcomers to grasp comparing to react, biggest difference though is still js-in-html vs html-in-js.

vite is from vue3 originally, I consider it's one of the best 'by-product' from vue3, it's 10x simpler than webpack and 10x faster too, I use it for all javascript/typescript projects nowadays.

That isn't a thing from Vue3 though. It has come from esbuild and swc projects. Both are now looking to fully support typechecking in a lower level language rather than having JS tooling written solely in JS. You can use vite for React too but it does lack certain features for us. I could get reasonably the same gains using webpack with swc loader or esbuild loader too. It is really just a preference on type of projects. For small starter applications a tool like vite is cool. If you're looking for ways to distribute many common applications with shared vendor libraries and seamless transition between microfrontends then federated modules is a big feature of webpack.
my projects are small indeed, one reason to use vue3+vite, I tried react and webpack, both have much deeper learning curve for me at least.