Hello everyone and welcome to Vue.js Live 2024. I'm Evan Yew, the creator of Vue and Vite. Today I'm super excited to share with you a 10 years retrospective on Vue.js. Vue is already 10 years old. In this talk, we'll see the history of Vue, its technical impact, and how we are keeping it alive. Vue has over 9,326 commits, 493 versions released, 2 million users worldwide, 250,000 GitHub stars, 4.9 million weekly npm downloads, and 1 billion monthly CDN requests on jsdeliver. Vue was the first framework to do tracking-based reactivity, combine single-file components with build tools, and explore a compiler-powered reactivity sugar. Vue also supports both template and virtual DOM render functions.
Hello everyone and welcome to Vue.js Live 2024. I'm Evan Yew, the creator of Vue and Vite. Today I'm super excited to share with you a 10 years retrospective on Vue.js. Yes, you heard that right. Vue is already 10 years old. Sounds like a very long time in front-end world. And of course, Vue is no longer a new technology, but in this talk we'll see some of the history of it and we'll also see what we're doing to Vue to keep it alive and well.
Okay, let's dive right into it. First of all, Vue's today in some numbers. Here are some stats of combined Vue.js slash Vue and Vue.js slash Core combined stats on GitHub. We have today over 9,326 commits across the two repositories. We have released over 493 versions of Vue. We have over 2 million users worldwide, 250,000 GitHub stars, 4.9 million weekly npm downloads, and over 1 billion monthly CDN requests on jsdeliver.
And we also want to talk about some of the technical impact of Vue, because despite using it day to day, maybe a lot of new users today aren't as familiar with the history of it and what ideas first came out of Vue and what ideas kind of influenced other technologies, right? Back in 2014, Vue was the first JavaScript framework to do deep tracking-based reactivity. Now, tracking-based reactivity is a paradigm that dates all the way back to Knockout.js and Meteor Tracker. That's an even older technology than Vue, but Vue was the first one to apply this principle into deep objects. So you can have an object mutated and things just work, and Vue was the first framework to do that. Vue was also the first framework to combine the idea of single-file components with build tools. The idea of single-file components isn't necessarily new. There was in fact an internal project at Google when I was working there, it was a source of inspiration. But Vue was the first one to combine this idea with a build tool called Browserify Backend, and later on, we also supported Webpack. But the ability of single-file components with build tools, the uniqueness of that is that we can use additional languages in these script blocks or template or style blocks. So you can use CoffeeScript back then, today you can mostly use TypeScript, you can use SAS, LASP, preprocessors, you can use PostCSS to process your CSS, you can even use POD, which was called Jade back then, different templates in text with templates. So Vue was the first framework to support this kind of usage. And Composition API was the first to combine Signo style reactivity, which is also the tracking-based reactivity that we talked about earlier, with modern component models. So you can use Vue refs in a script setup syntax with modern component models, and Vue was the first to actually combine that model into the model component model that we are all familiar with today. And Vue was also the first to explore a compiler-powered reactivity sugar for Signos in the form of the reactivity transform, which was an experimental proposal that we ran with for a period of time, but in the end we decided that it was not the best direction for Vue. However, we are actually pretty happy to see that this direction is being picked up by other frameworks, for example, Svelte 5, that actually is also exploring this direction. So it might be a better fit for Svelte, but we believe Vue is in a pretty good place with its own paradigm. Now, Vue is also unique in supporting both template and virtual DOM render functions.
Comments