Marc Backes
Under The Hood Of Vue 3 Reactivity
#1about 3 minutes
Understanding the core principles of reactivity
Reactivity is explained as an automated observer pattern where changes to data trigger updates wherever that data is used.
#2about 2 minutes
Using ES6 Proxies to intercept data access
ES6 Proxies wrap objects and allow interception of operations like getting or setting properties, which is the foundation for Vue 3's reactivity.
#3about 4 minutes
Architecting the reactivity system with maps and sets
The system uses a WeakMap to store a Map for each object, which in turn stores a Set of effects for each property.
#4about 5 minutes
Demonstrating the problem with manual state updates
The initial code shows how changing a product's price or quantity requires manually recalculating the total each time.
#5about 3 minutes
Building manual track and trigger functions
The `track` function adds an effect to a Set, and the `trigger` function iterates over the Set to execute all tracked effects.
#6about 11 minutes
Building a reactive function with ES6 Proxies
A `reactive` function is created using an ES6 Proxy to intercept property access, with `get` handlers calling `track` and `set` handlers calling `trigger`.
#7about 4 minutes
Automating dependency tracking with an effect function
The `effect` function wraps a piece of code, sets it as the `activeEffect`, and runs it once to automatically track all accessed reactive properties.
#8about 6 minutes
Connecting the reactive system to the DOM
The final step demonstrates the complete system by linking the reactive state to DOM elements, which update automatically when the state changes.
#9about 12 minutes
Answering audience questions about reactivity and career
The speaker answers questions about proxy performance, nested objects, career journey, and identifying reactive objects in a large codebase.
Related jobs
Jobs that call for the skills explored in this talk.
Douglas GmbH
Düsseldorf, Germany
Intermediate
Senior
TypeScript
React
Hubert Burda Media
München, Germany
€80-95K
Intermediate
Senior
JavaScript
Node.js
+1
Matching moments
02:33 MIN
Why you might not need JavaScript for everything
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
04:56 MIN
Recreating React components using AI and dev tools
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
03:16 MIN
Improving the developer feedback loop with specialized tools
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
08:07 MIN
Exploring modern JavaScript performance and new CSS features
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
11:32 MIN
The industry's focus on frameworks over web fundamentals
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
03:31 MIN
The value of progressive enhancement and semantic HTML
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
09:00 MIN
Navigating the growing complexity of modern CSS
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
05:28 MIN
The origin story of the Polypane developer browser
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
Featured Partners
Related Videos
Under The Hood of Vue 3 Reactivity
Marc Backes
petite-vue - Progressively enhancing every application?
Alexander Lichter
Common Mistakes in Vue.js and How to Avoid Them
Daniel Kelly
Bringing back reactivity in "reactive" frontend
Michał Moroz
What the heck do "declarative" and "reactive" actually mean?
André Kovac
React and the power of visualisation
Daisy Muyldermans
Vue3 practical development
Mikhail Kuznetcov
Modern Web Development with Nuxt3
Alexander Lichter
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.



Multiplied
Roosendaal, Netherlands
Remote
€5K
Intermediate
CSS
SASS
Scrum
+4

Volkers Nijkerk
Nijkerk, Netherlands
€3-5K
API
Vue.js
Docker
Laravel
+3


Optimus Search
Berlin, Germany
Remote
Intermediate
API
CSS
GIT
React
+4

Fenetre
The Hague, Netherlands
Remote
Intermediate
Vue.js
Bootstrap
.NET Core
JavaScript

