
Ten Years of Vue (with Evan You)
07/04/24 • 60 min
This DejaVue episode is special - Alex and Michael meet up with the creator of Vue, Vite and Rolldown, Evan You himself and talk about the last ten years of Vue!
Starting with how Vue.js started as a side project while Evan still worked at Google, Evan shares the story of how Vue.js came to be and how it evolved over the years. Interesting insights, such as why the Composition API was created and which initial problems should be solved with it, are shared in this episode. And to all that, questions from the Q&A were answered as well, touching topics like petite-vue, if and how the Options API will persist and how opinionated Vue.js is.
After an hour of content and insights, the episode ends with a tiny cliffhanger, as Part Two of the conversation covering the future of Vue, possible Vue 4 features, Vapor mode, Vue 3.5 and more, will be released next week!
Enjoy the episode!
Chapters
- (00:00) - Welcome to DejaVue!
- (01:09) - How did Vue.js start out?
- (04:48) - The Initial Version of Vue.js
- (13:42) - Do new Vue users start without a build step?
- (15:02) - Vue's expansion to different use cases
- (18:14) - Is Petite Vue dead?
- (21:03) - Why Vue 2?
- (29:58) - How opinionated is Vue?
- (35:15) - The Transition from Vue 2 to Vue 3
- (36:32) - How did the idea for the Composition API came up?
- (38:24) - Options API vs Composition API
- (44:54) - Will the Options API stick around?
- (46:10) - Overhead of keeping APIs around
- (51:13) - Considering to disable Options API via a flag?
- (53:05) - The former class-based API proposal
- (58:03) - Classes with Vue's reactivity concept
- (59:38) - Whaat, there is a Part 2?
Links and Resources
This DejaVue episode is special - Alex and Michael meet up with the creator of Vue, Vite and Rolldown, Evan You himself and talk about the last ten years of Vue!
Starting with how Vue.js started as a side project while Evan still worked at Google, Evan shares the story of how Vue.js came to be and how it evolved over the years. Interesting insights, such as why the Composition API was created and which initial problems should be solved with it, are shared in this episode. And to all that, questions from the Q&A were answered as well, touching topics like petite-vue, if and how the Options API will persist and how opinionated Vue.js is.
After an hour of content and insights, the episode ends with a tiny cliffhanger, as Part Two of the conversation covering the future of Vue, possible Vue 4 features, Vapor mode, Vue 3.5 and more, will be released next week!
Enjoy the episode!
Chapters
- (00:00) - Welcome to DejaVue!
- (01:09) - How did Vue.js start out?
- (04:48) - The Initial Version of Vue.js
- (13:42) - Do new Vue users start without a build step?
- (15:02) - Vue's expansion to different use cases
- (18:14) - Is Petite Vue dead?
- (21:03) - Why Vue 2?
- (29:58) - How opinionated is Vue?
- (35:15) - The Transition from Vue 2 to Vue 3
- (36:32) - How did the idea for the Composition API came up?
- (38:24) - Options API vs Composition API
- (44:54) - Will the Options API stick around?
- (46:10) - Overhead of keeping APIs around
- (51:13) - Considering to disable Options API via a flag?
- (53:05) - The former class-based API proposal
- (58:03) - Classes with Vue's reactivity concept
- (59:38) - Whaat, there is a Part 2?
Links and Resources
Previous Episode

VueUse and Our Favorite Composables
VueUse might be a library known to many Vue and Nuxt developers - and if not, it should be quickly! With over 200 functions, composables and utilities, it provides a "standard composable kit" which Alex and Michael take a look at in this DejaVue episode. And more than that, they also share their favorite composables that they use or learnt a lot from. Definitely do not miss that out and stay for the spoilers at the end.
Enjoy the episode!
Chapters
- (00:00) - Welcome to DejaVue
- (00:45) - An Introduction to VueUse
- (01:59) - How often do you use VueUse?
- (03:50) - Using a library or better to DIY?
- (05:38) - The Reactivity Layer
- (06:43) - Docs, Demos and Source Code
- (09:52) - Composable 1 - useEventListener
- (13:10) - Composable 2 and 3 - useDebounceFn & useThrottleFn
- (17:46) - Composable 4 - useLocalStorage
- (24:00) - Composable 5 - useMagicKeys
- (29:04) - Util 6 - makeDestructurable
- (33:18) - Wrapping up around VueUse
- (34:43) - Nuxt Tips Collection
- (35:33) - SPOILER!!!
Links and Resources
- Nuxt Tips Collection from Michael
- Mastering Nuxt*
- VueUse
- VueDemi
- Slidev
- is-even package
- is-odd package
- Composable 1 - useEventListener
- Composable 2 - useDebounceFn
- Composable 3 - useThrottleFn
- Debounce Vs Throttle
- Composable 4 - useLocalStorage
- Localstorage example from Alex' Website
- Composable 5 - useMagicKeys
- Util 6 - makeDestructurable
- Bonus - createReusableTemplate
Links marked with * are affiliate links. We get a small commission when you register for the service through our link. This helps us to keep the podcast running. We only include affiliate links for services mentioned in the episode or that we use ourselves.
Next Episode

The Future of Vue.js (with Evan You)
After the first part, Michael and Alex continue their conversation with the one and only Evan You, covering the future of the modern JavaScript Framework.
Starting straight with possible plans for Vue 4 to address common pain points and no ETA for the next major, exciting improvements like native CSS Scoping or removing the need for declaring props are discussed (though nothing is set on stone)!
Next, Vue 3.5 and it's current alpha version are on the list. We all look forward to the amazing features in the next minor version, including Lazy Hydration, perf improvements, easier types and also new composables like useTemplateRef.
Eventually, the State of Suspense, Vapor Mode, Volar, and Mobile App Development with Vue are addressed as well.
Enjoy the episode!
Chapters
- (00:00) - Welcome to DejaVue!
- (01:06) - Do you have any plans for Vue 4?
- (02:47) - Ref Unwrapping in objects
- (05:22) - Native CSS Scoping, Signals and Browser range
- (07:12) - Defaulting to script setup and TypeScript
- (11:12) - No prop declaring necessary anymore
- (13:43) - Nothing set in stone for Vue 4
- (14:50) - Vue 3.5 improvements
- (15:50) - Internal type improvements
- (16:33) - Reactive Props Destructure RFC
- (19:31) - useId and useTemplateRef
- (21:00) - Do we still need custom directives?
- (22:06) - Lazy Hydration
- (22:57) - Allowing Hydration mismatches on purpose
- (25:10) - Custom Lazy Hydration Triggers
- (26:18) - Vue 3.5 Alpha
- (26:56) - State of Suspense
- (30:17) - Vapor Mode
- (33:44) - Performance of Vapor
- (35:31) - Volar and the Vue VS Code Extension
- (39:09) - Negativity towards Volar
- (40:18) - Mobile App Development with Vue
- (42:51) - What content would help the Vue community?
- (51:07) - Wrapping up!
Links and Resources
- 10% discount for the vue.js de Conf in Bonn, Germany with code DEJAVUE
- Nuxt UI Pro* - Get 20% off with code LICHTER until July 14th
- Reactive Props Destructure RFC
- Volar
- Vue Language Tools
- Nuxt
- JS Framework Benchmark
- Ecosystem CI (Vue)
- NativeScript
- TailwindCSS
- Kevin Deng (sxzz)
- Anthony Fu
- Daniel Roe
Links marked with * are affiliate links. We get a small commission when you register for the service through our link. This helps us to keep the podcast running. We only include affiliate links for services mentioned in the episode or that we use ourselves.
DejaVue - Ten Years of Vue (with Evan You)
Transcript
Hey, everybody. Welcome back to another episode of DejaVue.
Michael ThiessenIt's your favorite Vue podcast. You just don't know it yet.
Alexander LichterExactly. And today, well, I'm here. I'm Alex. I am a Nuxt team member, also a web engineering consultant and content creator around in the Vue ecosystem. I'm here with Michael Thiessen today.
If you like this episode you’ll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/dejavue-410123/ten-years-of-vue-with-evan-you-59578128"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to ten years of vue (with evan you) on goodpods" style="width: 225px" /> </a>
Copy