Skip to main content

getReactiveState

Returns reactive refs for each field of the Kanban state. Subscribing to an individual ref re-runs dependent logic whenever that field changes. Unlike getState(), which returns a one-time snapshot.

Usage

getReactiveState(): TState<State>

The returned object contains a reactive ref for each state field:

FieldTypeDescription
cardsCardsStoreInternal card storage
columnsColumnConfig[]Column definitions in board order
columnAccessorColumnAccessorResolver for card-to-column membership
filtersMap<string, FilterPredicate>Active filter predicates keyed by tag
sortSortCriterionActive sort criterion, or null
editorDataKanbanCard | nullCurrently selected card, or null
dynamicDatabooleanWhether dynamic loading is on
columnDataMap<ColumnID, { status: ColumnDataStatus }>Per-column load state ("unknown", "loading", or "loaded")
history{ undo: number; redo: number }Available undo/redo step counts
viewDataKanbanModelProjected render model (ordered, filtered, sorted columns)

Each field is a Vue reactive value. Reading it inside a reactive context (computed, watchEffect) sets up automatic tracking.

Example

<script setup>
import { ref, computed } from "vue";
import { Kanban } from "@svar-ui/vue-kanban";

const api = ref();

function init(kanbanApi) {
api.value = kanbanApi;
}

const state = computed(() => api.value?.getReactiveState());
const cards = computed(() => state.value?.cards.v);
</script>

<template>
<Kanban :init="init" :cards="cards" :columns="columns" />

<p>Total cards: {{ cards?.length ?? 0 }}</p>
</template>
  • getState - non-reactive snapshot of current state
  • getCards - unfiltered source card array