API reference › @evolu/vue › useQueries

function useQueries<
  S extends Readonly<
    Record<string, Readonly<Record<string, AnyStandardSchemaV1>>>
  >,
  Q extends Queries<S>,
  OQ extends Queries<S>,
>(
  queries: [...Q[]],
  __namedParameters?: UseQueriesOptions<OQ>,
): [...QueriesToQueryRowsRef<Q>[], ...QueriesToQueryRowsRef<OQ>[]];

Defined in: useQueries.ts:53

The same as useQuery, but for many queries. waitForRows takes the rows it returns, such as await waitForRows(...rows).

Example

import {
  assertType,
  createQueryBuilder,
  testEvoluSchema,
  type QueryRows,
} from "@evolu/common";
import { useQueries } from "@evolu/vue";
import type { Ref } from "vue";

const createQuery = createQueryBuilder(testEvoluSchema);
const allTodos = createQuery((db) => db.selectFrom("todo").selectAll());
const allProjects = createQuery((db) => db.selectFrom("project").selectAll());

// Call composables in component setup. The rows of the once queries come
// last.
const useTodosAndProjects = () =>
  useQueries([allTodos], { once: [allProjects] });

assertType<
  ReturnType<typeof useTodosAndProjects>,
  [
    Readonly<Ref<QueryRows<typeof allTodos.Row>>>,
    Readonly<Ref<QueryRows<typeof allProjects.Row>>>,
  ]
>();