
Vue 3.0 Updates [slides] - mxstbr
https://docs.google.com/presentation/d/1yhPGyhQrJcpJI2ZFvBme3pGKaGNiLi709c37svivv0o/preview?slide=id.p
======
superasn
I think the best part about Vuejs is that how simple it is and everything just
works!

A vue component is still as simple as {template: 'hi'}. You don't need webpack
or any transliteration for it to work. Just drop the script tag like the good
old jQuery and it's working! No wonder it was so easy to switch to it.

Transition from vue1 to vue2 was really simple. I'm sure the same will be true
for v3.

~~~
eksemplar
Having started with vue, and now playing with react, I’ve found myself often
thinking “this is so much simpler”.

But maybe I just sucked at vue.

~~~
sircastor
That's interesting, I started with React, and switched to Vue, and felt Vue
was the simpler tool.

~~~
IgorPartola
Agreed. When evaluating both of them, it looked like React and Vue implement
the same concepts, but React did it in ways that made it more complicated than
it needed to be. I specifically didn’t like that Redux and it’s docs were too
heady for what it really is (it’s just event triggering and handling, why does
it have to be so complicated?), and the fact that React didn’t have any
official “here’s is how to build a complete app” docs. It was always “well
here are different choices and project layouts you could use”. I don’t want to
care about using this templating system or that. I want batteries included.
Vue did that well.

~~~
acemarke
Hi, I'm a Redux maintainer. FWIW, we're looking at revamping the Redux docs in
the near future (see
[https://github.com/reduxjs/redux/issues/2590](https://github.com/reduxjs/redux/issues/2590)
for plans ).

If you've got any specific suggestions for improvements, please let us know!
I'm always looking for ways we can make the docs better.

As a side note, React is separate from Redux, and Redux is definitely not tied
to React. Here's a recent post about a team that opted to use Redux with Vue:
[https://snipcart.com/blog/redux-vue](https://snipcart.com/blog/redux-vue) .

~~~
IgorPartola
Sorry I just saw this. If you see this comment, yes I know Redux and React are
separate and that you can use other state management systems besides Redux
with React. However, that doesn’t help when evaluating the React ecosystem at
first. I don’t want to play “pick a library, build a framework”. What I do
most of the time is pretty common stuff: SPA with login, CRUD data
manipulation, etc. I want a a framework that does 80% of that and has
flexibility to create the other 20%. Many React/Redux tutorials are happy to
oblige. But they are also all incomplete and unofficial. And by the time a
large comprehensive tutorial is written by some kind soul, the APIs have
changed, and you are back to SO looking for how to make the damn thing run.

Specifically with Redux, I would suggest clarifying stuff around reducers and
possibly renaming them. As is, reducers sound like “a monad is a monoid in the
class of ...” Vuex specifically does a very nice job of calling their
equivalent thing “mutations” which is more intuitive.

My visualization of Redux/Vuex is basically an application of the event system
to state management. Instead of manipulating global.state.foo directly, you
ask the system to change the value of foo and a callback does it. A simple
explanation like that from the start with some examples of benefits of it
would be really helpful.

Also, Vuex has a less strict but more usable idea of not having to import
actions. You just refer to them as strings.

Also also, examples of XHR/promises handled by Redux especially with error
handling all the way from “server returned 404/400/500/etc.” to how to hand
that off to a UI element would be helpful. Takes way too long to discover the
right pattern for action returning a promise.

------
yuchi
I'm very happy to see React and Vue influence each other. They definitely are
the highest quality frameworks out there and having two different research
teams only improves the overall quality of the ecosystem.

I'm a React fan, yet I really applaud all the nice stuff which is coming in
Vue 3. Well done.

~~~
aaaaaaaaaab
>research teams

Lol. Writing JS libs is not research.

~~~
avip
What makes you say that? People are actively earning phds researching
implementations in different languages. JS is different because it’s useful?
Runs in a browser?

------
tinyvm
3.0 is a huge milestone for vue.

Currently the architecture forces you to import the Vue object entirely , has
Vue under the hood isn't really modular...

With 3.0 Vue has taken the typescript way and is using packages , similar to
angular , it looks absolutely awesome to work with now.

I really hope class based components will be supported natively without
compiling or transpiling.

Working "out of the box" has always been part of Vue philosophy , I really
hope this continue.

This is really a big release , but it's still sad to see the 3.0-alpha branch
is not visible on GitHub , i really would have loved to have a look at it.

~~~
atentaten
Vue 3.0 is reported to support class-baed components natively:
[https://medium.com/the-vue-point/plans-for-the-next-
iteratio...](https://medium.com/the-vue-point/plans-for-the-next-iteration-of-
vue-js-777ffea6fabf#60e3)

------
TekMol
My feeling is that most people who use Vue or React only need a template
engine. Typical use case: You have an array of objects and a template how each
object should look like.

So you do...

    
    
        <div id=users>
         <a v-for="user in users" :href="'user/'+user.id">
          {{ user.name }}
         </a>
        </div>
    
        <script>
         let userList = new Vue({
          el  : '#users',
          data: { users: users }
         })
        </script>
    

...to make Vue render the list of objects.

This is the only thing I ever use these frameworks for. Everything else I
think I can implement in a better, leaner way myself. So I wonder if I should
switch to a template engine instead.

What is the next most basic/common usecase for Vue?

~~~
beaconstudios
as a React developer, SPAs in general are overused. Most LOB apps could (and
should) still be written in a backend templated language. SPAs should be
reserved for applications (or even individual components) with advanced
interactive features, ie a proper web app.

~~~
bsaul
That's also my conclusion after toying a bit with those frameworks. You want
to use them for specific pages ressembling applications, but you still want
the main structure of your frontend to be defined server-side, using the most
standard technology.

This lets you split your interface into more isolated components, and makes
you free to use different framework depending on the type of interaction your
page needs, as well as be able to update your site progressively.

~~~
beaconstudios
yeah, for most web apps that are primarily regular CRUD+routing interfaces,
you can/should use SPA tech to progressively enhance your more advanced
controls. There are cases where it makes sense to build a whole SPA (I'm
working on an in-browser editor that wouldn't work very well as a backend app,
for example) but the vast majority of cases where React is used, it just adds
complexity and challenge.

React/Redux hasn't been around long enough for its best practices to solidify
in the general industry so you'll often find that companies that picked up
React have a hodge-podge of incorrectly used technologies included because
they didn't know the use case for Thunks vs Sagas, how to use Reselect
correctly, whether to store any given state in Redux or a Container, and so
on.

------
pier25
Vue 3 is a massive new update:

\- TypeScript

\- Double the performance

\- Half the size and memory consumption

\- New reactive system that supports classes a la MobX

\- Class based components

I've been using Vue for a couple of years and I'm very excited about this new
release.

------
spectaclepiece
It appears that there are similarities in Vue 3.0 with Aurelia, at least on
the surface. Things like class based components, proxy-based observer
mechanism* and the move towards typescript all remind me of Aurelia.

Been using Vue 2.0 for personal projects and Aurelia for a big work project
over the past year and I have to say I am very happy with both. Personally I
prefer the single file components in Vue but the class based style of writing
them in Aurelia. Seeing these two things converge in Vue 3.0 together with the
performance improvements looks very promising.

*Not sure that under the hood Vue 3.0 works the same way as Aurelia but the mentioned points in the slides lists array index / length mutation and later the observable function are familiar from Aurelia.

------
bpicolo
The Typescript support is by far the thing I'm most interested in. Lack of
useful Typescript support is, for me, the only downside of Vue right now, and
it's a big enough downside for me to use React instead of Vue in a lot of
cases.

Do you reckon we'll ever see Typescript support in the non-jsx templates? I do
really like vue templates for e.g. if-conditionals. I really don't like using
ternary operators for template logic. And then the alternative being to hoist
things out of the single JSX template breaks make code less linear to read
which kinda sucks

~~~
bsaul
to me the biggest downside was how vuex and typescript didn’t work well
together by default. You had to rely to adding a few plumbing functions, and
that felt really like dirty patching.

~~~
bpicolo
Yep, that as well, I agree. And the plumbing is super verbose

------
diminish
Vue has a strong leader - and that is promising.

------
BtM909
Does someone have the talk (if there's one) which used this deck as well?

------
armaxt
How about the ability to create multiple components in the same .vue file? for
instance I need to define a sub-component that will be used only inside my
component, this is easy in React but with Vue I have to create another file to
define this sub-component, this makes the project management becomes harder as
the project grows

~~~
pier25
That is one of the few aspects I prefer in React over Vue.

But you can indeed create small inline components in .vue files.

There are different approaches: [https://codewithhugo.com/writing-multiple-
vue-components-in-...](https://codewithhugo.com/writing-multiple-vue-
components-in-a-single-file/)

------
pdkl95
> ... implementation re-written from the ground up

Rewriting a big project from scratch is often used as something to brag about:
"Look at all the hard work we accomplished!". Except in software what matters
is correctness and efficiency, not the age or the code or the size fo the
rewrite. Rewriting "from the ground up" is throwing away years of bugfixes[1].

Maybe this new version is fine; I'm only suggesting that big re-
implementations should be seen as an unknown risks, and that "carefully
refactored problematic areas of the code" is something worth bragging about on
a slide.

[1] [https://www.joelonsoftware.com/2000/04/06/things-you-
should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never-
do-part-i/)

~~~
bpicolo
When your project is such a size that a single person can keep it all more or
less in their head (in this case, Evan), clean slate rewrites end up being
fairly efficient. It's a much different case than 20->200->2000 devs scale
applications. It's vastly more easy to develop something from scratch if you'd
put a lot of thought into it over time

------
agumonkey
Happy to see this project move forward, but I get surprised when I read 100%
speed improvement, since it was already super fast. I wonder how they manage.

------
Normal_gaussian
Slide 20 "flow -> typescript" is under making it more maintainable - does
anyone have any thoughts on this?

I use flow because I am interested in soundness, have had a few issues with
it, but nothing has suggested to me that typescript is more maintainable.

~~~
rawrmaan
TS is more popular and has a bigger ecosystem. It could enable more
contribution to the project.

------
Zooper
Code? I've been toying with a very specific type of proxy-based observable,
and I'd like to compare notes.

~~~
acemarke
I'm interested in looking at the code for a very similar reason, but Evan said
it's not open yet:
[https://twitter.com/youyuxi/status/1063275580920135680](https://twitter.com/youyuxi/status/1063275580920135680)

------
crooked-v
I'm happy to see another framework moving to Typescript.

~~~
joshschreuder
In case there are any newcomers, it's probably worth noting that just the core
framework is written in Typescript, and compiled to normal JS - you are not
forced to use Typescript in your own Vue code unless you want to.

------
baybal2
Any news on native support for fragments?

------
welanes
.

~~~
orf
FYI it takes 5.16 seconds to download the 5 megabytes of vendor JavaScript
needed to view your landing page from a cold cache (and 2 for your app
itself), not to mention the 6 seemingly needless Firebase API calls or the
fact you're running the development version of the Firebase SDK.

No matter how awesome you think whatever framework is, this is a terrible,
terrible experience.

