4 ms·
Vue is hands down the worst frontend framework I've had the displeasure of working with. The authors are trying to hard to write something "different" that in t
by IceDane 5y ago
Vue is hands down the worst frontend framework I've had the displeasure of working with. The authors are trying to hard to write something "different" that in the end they've only managed to create a bunch of incidental complexity that you constantly have to deal with because of their design decisions. And then they keep trying to "fix" these problems by adding new features and more complexity.
Everything in Vue is more complicated. They went with this whole template language which is just a mess and has extremely poor tooling support. Everything is more complicated and harder to reason about. You literally need(ed) several files to write a single component which could be a couple of lines of JSX in React. Since the tooling support is so poor and it is so over-engineered, it is extremely difficult and bothersome to get it fully typed.
I'm just really glad that I don't have to work with it on a daily basis.
- MatekCopatek 5y agoThat's really interesting, I've worked with Vue since before 1.0, used it for various things (complex conventional SPAs, enhancing legacy server-rendered apps, even an IPTV GUI) and was always really satisfied. Can you give a few examples of things that bug you?
- tnjm 5y agoThat's interesting -- my experience has been 180° away. I agree that recent features have added complexity and made the barriers for newcomers a little higher, though. At its core, however, everything just 'clicked', the templating works beautifully, and single-file-components are superb. I'll write React and Ember when necessary, but coming back to Vue is always a welcome relief. I've lost count of the number of times I decided to start off writing what felt 'right' intuitively, and found things just worked first time. In that sense at least, there are echoes of Rails for me.
- acallaghan 5y agoI've had the exact opposite experience to this, completely and utterly the other way around with React being over engineered and complex, with Vue being the tidier and faster to deal with. I get that React is the industry 'standard', but having worked with both for a while now, Vue is to me hands down better. Also with Vue, you have community driven direction, rather than FB. This is a big positive for me.
- 52-6F-62 5y ago> Also with Vue, you have community driven direction, rather than FB. This is a big positive for me. That was one of the top selling features for me as well. Not to disparage the large amount of work and thought and care that's gone into work on React, but when the tooling lies primarily in the hands of one company I get those old-fashioned Oracle vibes.
- iKlsR 5y agoI think you should swap Vue with React in this take, I'd agree with you 110% if you did that. React is the most over engineered tech I've ever worked with and if it weren't for excellent IDE support a la TS etc would be a nightmare to use on a daily basis. Also Vue 3 has great support for TS, 2 not so much. I can't see myself doing any project without Vue, it's literally plug and play and by far easier to grok and use than React.
- emn13 5y agotemplates are still stringly-typed, aren't they? And that whole extra language just for templates is annoying, and unnecessary. I don't want a v-else-if="level ==== 6", because I'm going to make typos, and I want the ability to refactor code in the future without painstakingly reviewing every string in the codebase. How good is the jsx integration in practice? It's there, but the vue docs recommend against it, without going into details of the motivation.
- Already__Taken 5y agoI agree with the template sentiment but it's really hard to defend the webs of ternary operator nests I've seen in jsx Vs v-*
- emn13 5y agoYou're free to use if's instead, if you prefer; that's more similar to v-if's. I agree that ternaries aren't the prettiest of language idioms, but if clearly formatted (e.g. eslint defaults are fine), I think it's mostly a question of getting used to it. I mean, the tricky but also common && and || are almost certainly worse for this, I suppose?
- hahamrfunnyguy 5y agoWhat are you doing that causes you to need several files for a single component? I am working on a multi-page app using the TypeScript class decorators and .vue component files. I turned off most of the optional features (including babel), and it's just a single .vue file most most components. I configured the Webpack and TypeScript settings when I created the project and haven't had to do much since. I've used Vue on several other projects and have enjoyed using it every time. I like that parts of the Vue framework are optional. Don't want the router or state management? Don't use it. The codebase is well organized, the output files are small and the app is performant. I don't like all the dev dependencies you need to get going, but I have that same complaint about most other modern front-end frameworks.
- wishinghand 5y agoI'm baffled by your comment like some of the others. If you swap Vue for React it'd make a lot more sense.