6 ms·
Vue is the coolest thing that I discovered in the past 3 years. It changed my career and made me a happier dev. Kudos to Evan for the job well done.
by fbnlsr 7y ago
Vue is the coolest thing that I discovered in the past 3 years. It changed my career and made me a happier dev. Kudos to Evan for the job well done.
- enraged_camel 7y agoSame! What I found most surprising is how well it scales. My current project has 45,000 lines of code (well, they are single-file components, so code and markup) and I still find everything super easy to manage.
- mcv 7y agoI originally started my current project in Angular, because that's what I had most experience with. Then some stakeholders asked if I could do it in Vue instead, and I rewrote it in a day. I was surprised at how easy it was.
- jetrink 7y agoI had a very similar experience. I got into a flow state while converting the project, which has never happened for me while working with an unfamiliar framework. It clicked in a way that Angular never did. Does React feel the same way? I know people love it too, but I haven't had an excuse to try it yet.
- api 7y agoReact itself has a few rough edges but the functional render path design is just how UIs should be done, period. Never tried Vue. Is it similar?
- 0xRCA 7y agoThey're pretty similar. I feel like the best comparison is when you write bad React code you can tell, but there isn't really "bad" Vue code in the same way since it's so malleable. That obviously is both good and bad. To me React is the preferable framework, it's much more opinionated and finicky but also more clear and thoughtful once you start approaching problems the way it requires. Vue is a lot like React, but it's extremely flexible and beginner-friendly. It doesn't really require a novice developer or someone coming from something very different like Rails or Angular to change how they think beyond the component structure itself. Two-way data binding seems much nicer and easier when you first come to Vue, but has so many hidden pitfalls and annoyances that one-way completely side-steps. That being said, I _despise_ DSLs and they should be avoided at all costs. They seem like a waste of brainspace and extremely fragile. It's my single biggest knock against Vue.
- cdrini 7y agoWhat are you considering as a DSL in Vue? I think JSX in React is more of a DSL than anything in Vue.
- pldr2244 7y agoJSX is a DSL with the ability to opt out into native JavaScript. So most complex JSX is a composition of JSX with JS driving the logical parts. Does Vue’s templating solution offer the same? (Genuine question, haven’t worked with Vue)
- cjblomqvist 7y agoIt does. You can do render functions similar to React (and optionally use JSX if you want to). It's not very common though except for library authors (especially if you need to do some clever stuff, regular vue templates can't handle all the corner cases that a raw render function can).
- mcv 7y agoIn my eperience, most people do use the templates, and especially in Vue 3, those templates are going to get compiled to extremely optimised render functions. But if you want or need to, you can also write your own render function directly, or indeed use JSX. Vue is remarkably flexible about that.
- mcv 7y agoI think Vue can be best described as a fairly light-weight framework that takes the best aspects of Angular and React. You can do templates like Angular, or render functions like React. It's fast like React, does data binding like Angular. Vuex is very much like Redux. It lacks Angular's injectable services, though.
- brlewis 7y agoNo, React does not feel like a simpler version of Angular. People who have used Angular but never liked it are Vue's target market.
- crescentfresh 7y agoUgh what about our 5 yr old project written in angularjs by about 20 different devs - most of whom are no longer on the project - and is still getting new feature requests that get pushed through the development pipeline and no one has any time to figure out how to begin integrating Vue (regardless of the Vue expertise).
- tenaciousDaniel 7y agoI'm in a similar boat. Our project was angularjs (angular 1), and we've been transitioning to React. I don't know Vue, and I don't know your setup, but what we opted for was: 1. Building a foundation in Vue/React. 2. Create an iframe component. 3. Load the angularjs app into the iframe. 4. Build a messaging system to notify the parent app of state changes. 5. Build a system to show/hide the angular app depending on the URL or view. This method worked well for us.
- mcv 7y agoYeah, my project was fairly new. That helps a lot. I could simply drop everything and rewrite from scratch. Templates were easy to translate from Angular to Vue. But converting a large, old project is always going to be hard. You either need a way to mix two different frameworks, which is going to be messy, or do a complete rewrite, which is a massive amount of work.
- MiniGod 7y agoDid this recently. We knew we wouldn't be able to rewrite everything, so we are writing new pages in Vue (and porting the old ones slowly). We add them to the angular router with a controller that creates a `new Vue` instance replacing the DOM element. This let's us start using Vue today and slowly phase out AngularJS.
- rodinia 7y agoDealt with something similar at my old company. If you have the option to go page by page, this may work for you. The original site was in ColdFusion, and we slowly reimplemented it in AngularJS (around 2014.) We used an NGINX whitelist that had all route permutations that needed to go to the AngularJS site send it to that container, and everything else went to the ColdFusion environment. Over time, the major components of the site was converted to Angular and the users were none the wiser (besides noticing that the average load time had decreased by THIRTEEN SECONDS, no I am not kidding.) The same pattern at my current role has worked while migrating an AngularJS app to Vue.
- zikani_03 7y agoI was also pleased with how easy it was to rewrite a project with Vue. Of course, it was much more seemless since Vue is very similar to KnockoutJS which we were using at the time.
- jve 7y agoSo why did knockout lost momentum to vue, as it is solving same problems in a similar way?
- dimgl 7y agoKnockout is significantly different from Vue. You have to supply values to its `data-bind` properties, and `data-bind` has its own syntax. I'd argue that semantically Vue's template syntax is similar to Angular's, not so much Knockou.
- tjr 7y agoWe inherited a mostly-complete AngularJS (Angular 1.x) project for a business jet cabin control interface. Meant to run on both user's personal phones/tablets and on devices attached to the interior of the plane, we found that the AngularJS system had very sluggish performance on some of the built-in on-board devices. And those are hard to get replaced, largely for avionics certification reasons. We traced the sluggish behavior to the combination of AngularJS running on those particular devices, and prepared several prototypes with different frameworks. Ultimately VueJS gave us the best performance (just slightly better than React), so we went with that, rewriting the existing software and adding more promised features. Our decision for VueJS was entirely grounded in performance within our overall system, but I have subsequently become a big fan of Vue. It's very enjoyable to work with. Glad to see them doing so well!
- agumonkey 7y agoare you a single dev or part of a team ? it seems that vue is part of the class of good tools that balance good enough structure and user pleasure the right way