Live data from Hacker News

Why we chose Vue.js

about.gitlab.com

201–210 of 282 posts

Re: Why we chose Vue.js

#201
post #105

Earlier quoted context omitted.

Wait, Vue doesn't need to be transpiled to JS like JSX? I'm equally hating configuring webpack. It's lack of documentation isn't helping either.

Why aren't you using create-react-app?

Why should you?

I mean, it is really handy to have a tool to save you from the initial setup and all that boilerplate code when you already know how it works.

But not knowing how the different pieces fit together will bite you when things start to fail.

Re: Why we chose Vue.js

#202
post #11

I do very little web these days, mostly working on backend data processing, network I/O and distributed comms. A bit over a year ago, I wanted a real-time web UI to visualize some of the data I had on server-side, which I was trying to do using SignalR. I went back through some of the popular frameworks, with a pretty simple mindset of "Can I read the 'getting started', and get something basic working in about 15 min…

I write Ember for external apps at A-Big-Tech-Co. but use vue.js for the internal stuff. The difference in readability, code size, and customizability is really starkly in favor of vue.js to me, though ymmv

Re: Why we chose Vue.js

#203
post #154

I actually interviewed with Jacob Schatz when he was trying to figure out which frontend framework to use for GitLab. I had been working in React for the last year or so which was apparent on my resume. He prefaced our interview with something to the effect of "I know you do a lot of React but we are not going to ever use React at GitLab" It was weird. I tried to ascertain his reasoning and pretty much all I got was…

Hi @49531. Sorry you felt that our conversation was weird. Regardless of my opinion of React, Vue or any Frontend Framework, I never want anyone to have a weird interview. My main feeling with Vue vs. React (maybe this should be a different post, as this post was meant to explain why Vue, and focus on the positives): 1. Vue is minimal to add in with existing code. React, is also not bad, but Vue is much simpler to mi…

Hi Jacob, the interview wasn't weird. Just that aspect of it :).

I get it that implementing a big build process in an existing project can be crazy and not worth the effort, especially since GitLab's frontend lives inside of its rails app.

I wouldn't be concerned about DSL issues with React though, the API is 90% vanilla JavaScript.

I also didn't want to implicate that the Vue.js / React stuff was the reason I didn't get the job at GitLab! The interview process was great and very open.

Re: Why we chose Vue.js

#204

Earlier quoted context omitted.

Honest question, how do you know that it's the frontend that's slow and not the backend?

You only need to look at a DevTools timeline to see that it's the front-end which is slow: https://www.webpagetest.org/result/161021_08_XZF/ 600KB of CSS, 800KB of JS... That's fine on your MBP over WiFi but on most pages it locks up the main thread on my phone for a good 5-10 seconds.

Hi wldlyinaccurate, thanks for your comment. There are a lot of frontend performance things we are focusing on for the next release. https://gitlab.com/gitlab-org/gitlab-ce/issues/23213.

Re: Why we chose Vue.js

#205
post #56

Ok, so I've built stuff in Vue.js, React and Angular and I need to understand all the rage. I mean, Vue.js is just like Angular but with less features? I like that it's slimmer, don't get me wrong, but I just don't understand the "woah, Vue.js is the shit!" when we've had Angular for so long. I put this in contrast to React where it's a completely new concept.

Agreed, I feel like I'm missing something here. I had thought that react "won" over angular because people generally preferred one-way data flow vs. angular's two-way data bindings.

At least for me, that's one of the biggest reasons why I feel like I understand react better than angular. It's a little verbose at times, but it does make it pretty easy to follow.

And it looks like Vue.js is a two-way data binding framework? I won't write it off without trying it, but that's a point against it for me.

Re: Why we chose Vue.js

#206
post #56

Ok, so I've built stuff in Vue.js, React and Angular and I need to understand all the rage. I mean, Vue.js is just like Angular but with less features? I like that it's slimmer, don't get me wrong, but I just don't understand the "woah, Vue.js is the shit!" when we've had Angular for so long. I put this in contrast to React where it's a completely new concept.

Vue.js is multi-paradigm. It supports the MVC model of Angular/Ember/Etc. but with Vuex you can use the Flux model encouraged by React or the Elm Architecture, and it works great.

Re: Why we chose Vue.js

#207

Earlier quoted context omitted.

Our company migrated to vue.js, 4 months ago. Our complex app is messy with JSX, router, and new dev can't keep up with code. Now we start every new app with Vue.js. The gap between junior dev and senior dev comes closer. They can collaborate with less bugs, less problems and less time to develop.

New React projects are today much simpler, thanks to new libraries to manage state like Mobx, or efficient starter kits. So without denying the benefits you encounter with the migration to Vue.js, I think that a full rewrite of you React app in "modern React" would have been a good thing too.

I'd probably like to spend dev time on meeting business demands rather than rewriting the whole project every time a new modern something pops up. Vue 2 breaks little in terms of compatibility with Vue 1.

Re: Why we chose Vue.js

#208
post #180

Earlier quoted context omitted.

It's still an issue. Let me show you an example. Here's a website that's an SPA https://preactjs.com I don't have an exact page count, but I was able to find 15 pages from browsing around. Here's how many pages various search engines have indexed using the query "site:preactjs.com" Google: 17 Bing: 6 Yahoo: 6 Baidu: 1 One of the Google results is an error page, but it presumably can't be de-indexed automatically due…

That seems like an example of a SPA that should really be a static site. Aside from it being the library's main page, why would you even need to implement this with any front end frameworks? I believe the parent post was referencing how companies usually have a static site for marketing/SEO, and the backend application is a SPA. This would effectively remove the need for SEO on an app that requires authentication any…

In that context, I agree. If your app doesn't need to be crawled or otherwise scraped, worrying about server-side rendering is just going to hold you back.

But there are public websites with a high degree of interactivity (such as social networks, or ecommerce sites) for which SEO is a huge concern.

Re: Why we chose Vue.js

#209

Earlier quoted context omitted.

Thanks for sharing your experience. As someone at a place with both ember and Mithril it's relevant to me. Can I trouble you for a couple more details? Did you use MSX with Mithril? We found Mithril to be usable without MSX but clicked more for people with MSX. What thoughts do you hear from people who work on the ember app regularly?

> Did you use MSX with Mithril? No, because it was green-field and I was trying to keep it as simple as possible; having to have a build step to run the MSX tooling was not really worth the complexity. > What thoughts do you hear from people who work on the ember app regularly? Mostly frustration, honestly. The main developer (who spends most of his time in Ember, though wasn't part of the team when it was originally…

For MSX projects where you don't have a build step just load MSXTransformer.js (122 KB). It isn't that big a runtime cost.

Re: Why we chose Vue.js

#210

Earlier quoted context omitted.

> As soon as I see "el: #id" it's basically over for me. There's literally only one of those, to tell what element in the HTML to bind the root Vue instance to. Vue doesn't require thinking about the DOM. It's the same sort of thing as React's basic tutorial ( https://facebook.github.io/react/docs/getting-started.html ) ReactDOM.render( Hello, world! , document.getElementById('example') );

PS. What if you're the kind of person who likes coupling presentation and logic? I really like JSX and inline styles. From my skimming, it appears Vue separates templates and logic. Is that correct?

Then write vue as single file components: https://vuejs.org/guide/single-file-components.html
Post reply on HN