
Marc Backes
Jun 28, 2021
Under The Hood of Vue 3 Reactivity

#1about 1 minute
Understanding the core concept of reactivity
Reactivity is explained as an automated observer pattern that listens for changes and notifies the system to update where needed.
#2about 2 minutes
Exploring the core technologies behind Vue 3 reactivity
Vue 3's reactivity system is built on native JavaScript features like Proxies, Set, Map, WeakMap, and Reflect.
#3about 3 minutes
Using ES6 proxies to intercept object operations
ES6 Proxies wrap a target object, allowing you to intercept operations like property access (get) and modification (set) using a handler.
#4about 3 minutes
Structuring dependency tracking with maps and sets
A nested data structure using WeakMap, Map, and Set is used to efficiently store dependencies from target objects to their properties and effects.
#5about 4 minutes
The roles of the track and trigger functions
The `track` function registers an effect as a dependency, while the `trigger` function executes all registered effects when a property changes.
#6about 7 minutes
Implementing a manual observer pattern from scratch
A simple observer pattern is built using `track` and `trigger` functions, demonstrating the need for manual calls to update state.
#7about 8 minutes
Automating tracking and triggering with proxy traps
The manual `track` and `trigger` calls are automated by placing them inside the `get` and `set` traps of an ES6 Proxy handler.
#8about 5 minutes
Refactoring proxy logic into a reusable reactive function
The proxy creation logic is encapsulated within a `reactive` function to easily convert any plain JavaScript object into a reactive proxy.
#9about 4 minutes
Managing effect scope with an active effect wrapper
An `activeEffect` variable and a wrapper function are used to ensure that dependencies are only tracked for the effect that is currently executing.
#10about 4 minutes
Connecting the custom reactivity engine to the DOM
The custom-built reactivity engine is used to automatically update the DOM in response to state changes, demonstrated with buttons and a color picker.
#11about 4 minutes
Answering questions on reactivity and browser support
The speaker addresses audience questions regarding React's hook-based approach, preventing duplicate effect registrations, and Vue 3's lack of support for IE11.
Related jobs
Jobs that call for the skills explored in this talk.
today
SAP Developer IT HR (m/w/d)

Deichmann SE
Essen, Germany
Intermediate
14 days ago
Softwareentwickler / Anwendungsentwickler (m/w/d) m/w/d

Personalwerk GmbH
Junior
Intermediate
14 days ago
Backend Developer Java (m/w/d)

Sopra Steria Custom Software Solutions GmbH
München, Germany
Senior