Marc Backes

Under The Hood of Vue 3 Reactivity

Vue 3's reactivity isn't magic. It's an automated observer pattern you can build from scratch using native JavaScript Proxies and Reflect.

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.

Featured Partners

Related Articles

View all articles
BR
Benjamin Ruschin
The HTML Elements That You’re Probably Over-Engineering
As frameworks have become more and more commonplace in the world of web development, so too has the over-engineering of features made possible by our humble old friend, HTML. The mental models that come with using state management in React, Vue and o...
The HTML Elements That You’re Probably Over-Engineering
S
SciChart
The Fastest JavaScript Charts - Built for React and Beyond
For most developers, browser charting works fine — until it doesn’t. Once you push beyond tens of thousands of points, add live streaming, or need advanced interactions, the story changes: frame drops, frozen dashboards, memory issues. That’s where S...
The Fastest JavaScript Charts - Built for React and Beyond
CH
Chris Heilmann
Building a "shoutout" component in plain HTML/CSS/JavaScript
Every Wednesday we meet at noon to talk about a lot of tech news, tools and resources in something we call WeAreDevelopers Live . We go live on YouTube and afterwards we cut out short videos to post on social media. What we needed was an obvious “sho...
Building a "shoutout" component in plain HTML/CSS/JavaScript
DC
Daniel Cranney
Dev Digest 195: End of Likes, JavaScript’s a Zoo, and Messing with Bots!
Inside last week’s Dev Digest 195 . 👎 No more external likes 🤗 Needy programs 📉 The worst selling Microsoft product 🟨 JavaScript engines zoo 🍞 No more toasts! 🤖 Messing with bots 👔 Beware of fake job interviews 🗞️ Join over 150,000 developers alread...
Dev Digest 195: End of Likes, JavaScript’s a Zoo, and Messing with Bots!

From learning to earning

Jobs that call for the skills explored in this talk.