Skip to content

Plugins y extensiones

Alpine.js soporta plugins oficiales y de la comunidad para ampliar sus funcionalidades.

Un plugin es una extensión que añade nuevas funcionalidades o directivas a Alpine.js. Puedes usar plugins oficiales o de la comunidad para agregar animaciones, persistencia, máscaras de input, entre otros.

La mayoría de los plugins se instalan vía npm o CDN. Ejemplo con el plugin oficial de persistencia:

Instalación por npm
npm install @alpinejs/persist

O por CDN:

Instalación por CDN
<script defer src="https://unpkg.com/@alpinejs/persist@3.x.x/dist/cdn.min.js"></script>

Primero, importa y registra el plugin en tu JavaScript principal:

Registro del plugin
import Alpine from 'alpinejs';
import persist from '@alpinejs/persist';
Alpine.plugin(persist);
Alpine.start();

Luego, puedes usar la nueva directiva x-persist:

Uso de x-persist
<input x-data x-model="$persist('')" placeholder="Persistente" />

Ejemplo: Alpine.js con plugin de máscaras (mask)

Section titled “Ejemplo: Alpine.js con plugin de máscaras (mask)”
Instalación de mask
npm install @alpinejs/mask
Registro de mask
import Alpine from 'alpinejs';
import mask from '@alpinejs/mask';
Alpine.plugin(mask);
Alpine.start();
Uso de x-mask
<input x-data x-mask="99/99/9999" placeholder="DD/MM/AAAA" />

Ejemplo: Alpine.js con plugin de intersección (intersect)

Section titled “Ejemplo: Alpine.js con plugin de intersección (intersect)”

El plugin @alpinejs/intersect permite detectar cuando un elemento entra o sale del viewport, útil para animaciones o carga diferida:

Instalación de intersect
npm install @alpinejs/intersect
Registro de intersect
import Alpine from 'alpinejs';
import intersect from '@alpinejs/intersect';
Alpine.plugin(intersect);
Alpine.start();
Uso de x-intersect
<div x-data x-intersect:enter="console.log('Entró al viewport')">
Observa la consola al hacer scroll
</div>

Ejemplo: Alpine.js con plugin de colapso (collapse)

Section titled “Ejemplo: Alpine.js con plugin de colapso (collapse)”

El plugin @alpinejs/collapse facilita animaciones de mostrar/ocultar:

Instalación de collapse
npm install @alpinejs/collapse
Registro de collapse
import Alpine from 'alpinejs';
import collapse from '@alpinejs/collapse';
Alpine.plugin(collapse);
Alpine.start();
Uso de x-collapse
<div x-data="{ abierto: false }">
<button @click="abierto = !abierto">Toggle</button>
<div x-show="abierto" x-collapse>
Contenido colapsable animado
</div>
</div>
  • @alpinejs/persist: Persistencia de datos en localStorage.
  • @alpinejs/mask: Máscaras de input.
  • @alpinejs/intersect: Detecta cuando un elemento entra/sale del viewport.
  • @alpinejs/collapse: Animaciones de colapso/expansión.
  • @alpinejs/focus: Manejo avanzado de foco.

Puedes extender Alpine.js creando tus propios plugins:

Plugin personalizado
function miPlugin(Alpine) {
Alpine.directive('saludar', (el, { expression }, { evaluate }) => {
el.textContent = '¡Hola ' + evaluate(expression) + '!';
});
}
Alpine.plugin(miPlugin);
  • Revisa la compatibilidad de versiones entre Alpine.js y el plugin.
  • Registra los plugins antes de llamar a Alpine.start().
  • Consulta la documentación de cada plugin para conocer todas sus opciones y eventos.
  • Puedes combinar varios plugins en un mismo proyecto.
🐝