1. $el: The Active Tab
An element can directly change its own properties. Here, the "tab" can highlight itself when you click a button inside it.
This is the Active Tab
Code in Action:
highlightTab() {
// this.$el is the root div with x-data
const tab = this.$el.querySelector('[x-ref="tab"]');
tab.classList.add('bg-blue-100', 'border-blue-500');
tab.style.transform = 'scale(1.02)';
}
2. $refs: Bookmarked Sites
Click a "bookmark" to load its content into the "main window". The buttons use $refs to target the content area by its name.
Bookmarks
Main Window
Click a bookmark to load content.
Code in Action:
loadBookmark(siteName, page) {
// this.$refs.mainWindow targets the div by name
this.$refs.mainWindow.innerHTML =
`<p>Loading <strong>${siteName} ${page}</strong>...</p>`;
}
3. $root: The Entire Browser
A control deep inside the component (the toggle button) can change the entire component's appearance (the "browser window") using $root.
Browser Content
This area is affected by the theme.
Code in Action:
toggleTheme() {
// this.$root is the component's top-level element
this.$root.classList.toggle('dark-theme');
}
Action Log
No actions yet. Interact with the demos above.