$el: The Current Instrument
An element referring to itself. It's like an instrument that knows its own state and can change its own lights or labels.
Helm Control Status:
Code Example
<button @click="toggleInstrument($el)">...</button>
<script>
Alpine.data('elDemo', () => ({
isActive: false,
toggleInstrument(element) {
this.isActive = !this.isActive;
// $el is passed and used to change itself
element.textContent = this.isActive ? 'Deactivate' : 'Activate';
}
}))
</script>
$refs: Named Navigation Tools
One element controlling other, specifically named elements within its scope. Think of a central console that can query individual tools like Radar or Sonar by name.
Control Panel
Instrument Displays
Radar: Online
Sonar: Nominal
Compass: Calibrated
Code Example
<div x-ref="radar">...</div>
<button @click="pingInstrument('radar')">Ping</button>
<script>
Alpine.data('refsDemo', () => ({
pingInstrument(name) {
// Access the named element via $refs
const el = this.$refs[name];
el.classList.add('animate-pulse');
}
}))
</script>
$root: The Entire Bridge
Refers to the top-level element of a component. It's the master switch that can change the state of the entire bridge, like activating a "Red Alert".
ALERT STATUS:
Bridge controls locked!
Code Example
<div x-data="rootDemo">
<button @click="setAlert('red', $root)">
Red Alert
</button>
</div>
<script>
Alpine.data('rootDemo', () => ({
setAlert(level, rootElement) {
// $root element is passed to manipulate the component
rootElement.classList.add('red-alert');
}
}))
</script>
Comparison Summary
| Magic Property | Analogy | Scope | Typical Use Case |
|---|---|---|---|
| $el | Current Instrument | The element the directive is on. | An element changing its own style, content, or attributes on click/hover. |
| $refs | Named Navigation Tools | Specific elements with x-ref within the component. |
A central controller manipulating specific, named child elements. |
| $root | The Entire Bridge | The top-level element of the x-data component. |
Applying a broad state change (like a theme or disabled state) to the whole component. |