0.1.10 • Published 10 months ago

alpine-reactivity v0.1.10

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Alpine reactivity

Vue reactivity for Alpine.

Bring the powerful reactivity system from Vue into your Alpine projects.

What is Vue reactivity system?

Example:

import { ref, computed, watch, setAlpine } from 'alpine-reactivity';

// If the Alpine package is NOT available under window.Alpine, set it here
setAlpine(Alpine);

document.addEventListener('alpine:init', () => {
  Alpine.data('button', () => {
    const counter = ref(0);

    const countFormatted = computed(() => `Clicked ${counter.value} times!`);

    watch(counter, () => {
      this.$dispatch('clicked', counter.value);
    });

    const onClick = () => {
      counter.value += 1;
    };

    return {
      counter,
      countFormatted,
      onClick,
    };
  });
});
<div x-data="button">
  <span x-text="countFormatted"></span>
  <button @click="onClick">Click me!</button>
</div>

How it works

Alpine is built on top of Vue's reactivity system.

However, Alpine is loosely coupled to Vue. It uses only reactive, effect, stop, and toRaw, and Alpine allows you to provide your own reactivity system.

Because of this, importing and using Vue reactivity system directly is not advised.

Instead, alpine-reactive reimplements the rest of the Vue reactivity methods like ref or computed using only the four building blocks.

Installation

Via CDN

<script defer src="https://cdn.jsdelivr.net/npm/alpine-reactivity@0.x.x/dist/cdn.min.js"></script>
const { ref, computed, watch } = AlpineReactivity;

ref(123);

Via NPM

npm install alpine-reactivity
import { ref, computed, watch } from 'alpine-reactivity';

ref(123);

Reference

See the docs

0.1.10

10 months ago

0.1.9

11 months ago

0.1.8

12 months ago

0.1.7

12 months ago

0.1.6

12 months ago

0.1.5

12 months ago

0.1.4

12 months ago

0.1.3

12 months ago

0.1.2

12 months ago

0.1.1

12 months ago

0.1.0

12 months ago