Skip to content

reactive-helpersReactive composition utilities for Vue 3

Render a reactive list, sync one object, and track loading and error state. You bring the data layer; the composables stay transport agnostic.

ContactList.vue
vue
<script setup>
import { useListInstance } from "@arrai-innovations/reactive-helpers";

const contacts = useListInstance({
    props: { pkKey: "contactId" },
    handlers: {
        list: async ({ pushObjects }) => {
            const response = await fetch("/api/contacts");
            pushObjects(await response.json());
        },
    },
});

contacts.list();
</script>

<template>
    <ul>
        <li v-for="row in contacts.state.objectsInOrder" :key="row.contactId">
            {{ row.name }}
        </li>
    </ul>
</template>

Where to start ​

The component above fetches contacts through one handler, keys each row by contactId, and renders them in push order. The composable owns the reactive state; your handler owns the request. Build a reactive list walks through it step by step, including loading and error state.

  • Learn by building. The tutorials walk one task end to end. Start with Build a reactive list, then Edit one object.
  • Solve a specific backend task. The how-to guides show how to wire handlers, register shared CRUD defaults, and reload from reactive params.
  • Understand how the pieces fit. The concepts pages explain what an instance owns versus your handlers, how the list pipeline transforms a rendered list, and how the object pipeline keeps one record in sync.
  • Look up an exact API. The reference documents every module, composable, and utility, plus a glossary of terms.