With Vue 2.0 - Why not use Vue.js as view layer? (Vue.js will support virtual DOM and jsx)

I read this blog https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9 and it seems Vue.js will support virtual DOM and jsx.

Vue.js will be “React plus templating system (instead to just jsx)”.

So why not MDG adopt Vue.js as view layer? Whether @evanyou still in MDG?

What do you think guys ?

18 Likes

I love Vue and its Single File Components. Unfortunately to use them with Meteor you have to use webpack.
I really hope MDG could make Vue a “first class citizen” just like they did for React. Vue is the cure to the “we miss Blaze templates” complaints.

1 Like

If someone makes some great Vue integration packages I’d be happy to help improve them and recommend them in the guide. This is how angular support happened!

16 Likes

Wow, this is a great update! @evanyou is really doing all the right things in view layer land.

Vue: 2, React: 0.

React hype: still inflating… :worried:

4 Likes

I think MDG lost a great opportunity when @evanyou was in MDG to have a awesome integration first class between Vue and Meteor. Vue would be the true Blaze 2.0+ replacement for us.

13 Likes

It can still be a great Blaze 2.0 replacement, the tight integration is just not there yet. :slight_smile:

I really doubt that Vue will ever gain a first class citizien status within Meteor.

MDG passed on that opportunity while Evan You was still with them. I do not see why they should change their mind now.

Having saying that, Vue is such a good product that it’ll break into the ecosystem soon or later, in a way or another.

Is gaining traction, it deserves it and it’s the perfect view model for any framework (meteor, laravel, featherjs, horizonjs, etc.)

4 Likes

If you want Vue integration you should start a project get some following and make it happen. You want the vue integration coming from someone using vue in a production application and would have built this integration anyway. As a community we ask for packages straight from MDG, but in reality the people with production experience with said framework or library will be a better driving force than a todo example at the end of the day. 2 cents

11 Likes

The subject of this thread is to see if it would make sense that Vue, a product made by an ex MDG member, become as tightly integrated to Meteor as React for instance. I hope we can get more constructive remarks than “if you want it just write it”.

3 Likes

React got tightly integrated after there were already dozens of community projects for it.

2 Likes

Ok so I guess Vue is not as mainstream as React. Yet.

Thank you for sharing the 2.0 announcement!

A couple months back I migrated a decent-sized Meteor app from React to Vue and I could not be happier about the choice, Vue has all the great selling points of React with a much higher rate of productivity and easier to learn API that’s more similar to Blaze. Vue 2.0 looks freaking amazing. Choice of either templates OR use a render() function and access the vdom, streaming server-side rendering, the possibility of Vue native or Vue->React Native integration…I’m really excited :smiley:

If we could get a Meteor build plugin to work with the .vue single-file components, I’d be ecstatic. Currently I’m using the webpack:vue package and it’s okay, but I’d love to see something using Meteor’s build system and the gaddic meteor-react-hotloader package modified to hotload .vue components as well. I fully agree that Meteor needs to have better integration with Vue, because the two go hand-in-hand so perfectly and make for a really great developer experience.

For those of you reading this who haven’t tried it, you owe it to yourself to play around with Vue for a day. It’s got a component system just like React (including proptypes validation), transparent reactivity similar to Blaze+Tracker but more optimized so no unnecessary re-renders, a redux-like implementation with an accompanying chrome extension with time-travelling just like redux, hot-loading via webpack, a core router, single-file components that contain all html/js/css in one file per component, and lots of other cool stuff.

14 Likes

I keep wondering whether the decision to make React a first class citizen for Meteor is actually an exit strategy from MDG. Imo React is really just hype. Vue is much better. Hell, even Blaze (with Viewmodel) is better

MDG is VC funded so ultimately needs to exit. React integration might as well be a bet that with enough adoption FB will take over. (Marc Andreessen is investing in MDG, also on board of Facebook.)

2 Likes

I couldn’t possibly disagree with you more strongly. There is a huge number of very reputable companies using React in production and loving it. Perhaps Angular is more established, but React is certainly in second place with anything else far behind. Perhaps Ember is somewhere up there.

I feel like people like to dismiss React as hype just because they don’t like it. Then don’t use it! Nobody is making you.

11 Likes

Everything is hype at some level. React, Meteor, Angular, Vue, etc. Even Google! We all pick certain things to use them because we believe they are the best tools for the job. But how did it get that way? Because of hype. So React may be hype, but so is everything else.

1 Like

One solution would be to use asteroid projet to bind meteor and VueJS in a simple way.

2 Likes

That is exactly what this boilerplate project does: https://github.com/lwakefield/meteor-agnostic-chat

More details here: https://iamlawrence.me/agnostic-meteor

So, what really is needed for full Vue integration? Let’s start by making a list.

  • Meteor and Vue data bindings. I guess the equivalent of the package “react-meteor-data” for React?
  • Isobuild package for Vue templates (no dependence on Blaze).
  • Isobuild package for *.vue single file components.

How does the Meteor package “vue:vue” fit in with all of this?

Depending on time, I may be able to help with Vue templates since I now have some experience with the inner workings of Isobuild.

1 Like

“vue:vue” Meteor package relies on Blaze.
If you use Vue the “non component” way this package will work with Jade files.
Unfortunately the “component way” experience does not work with Jade syntax. Because with vue:vue you have to put your Jade code inside a <script type="text/x-template"> tag it is not processed at all to generate html.

So for now webpack is the only way to use Vue single file components in Meteor. Wish @evanyou could write a little package for a perfect Vue single file components integration. That would really boost Vue adoption in Meteor.

1 Like