Vue
@virentia/net-vue читает net-модели в компонентах Vue. Как и React-биндинг, он не объявляет query и не решает, когда они запускаются, — это остаётся в моделях ядра. Vue-пакет отвечает на тот же единственный вопрос: «при данном query или mutation, что рендерить компоненту и как его вызывать?»
Оба хука — тонкий сахар над useUnit: сторы приходят read-only Ref'ами, колбэки привязаны к предоставленному скоупу. Ни кеша, ни плагина — скоуп из ScopeProvider (или provideScope) — единственная проводка.
Страницы
- useQuery — рефы
data/error/pending/staleплюс привязанные к скоупуrun/refetch/reset. - useMutation — рефы
data/error/pendingплюс привязанные к скоупуmutate/reset.
Установка
pnpm add @virentia/net-core @virentia/net-vue @virentia/core @virentia/vue vue@virentia/net-vue реэкспортирует ScopeProvider, provideScope, useProvidedScope и useUnit, так что компоненту хватает одного импорта для net и проводки скоупа.
Минимальный компонент
<script setup lang="ts">
import { useQuery } from "@virentia/net-vue";
import { userQuery } from "./model";
const user = useQuery(userQuery);
</script>
<template>
<Spinner v-if="user.pending.value" />
<Retry v-else-if="user.error.value" @click="user.run({ id: '42' })" />
<Card v-else :data="user.data.value" />
</template>Скоуп приходит от предка через ScopeProvider или provideScope(app, scope) при настройке приложения. Когда query запускается — триггер на роуте, run из обработчика, SSR-проход — решает модель; компонент лишь рендерит текущее per-scope состояние.