vapor-chamber API reference - v1.16.0
    Preparing search index...

    Function useCommand

    • useCommand — reactive command dispatch with optional bus subscriptions.

      Returns dispatch + reactive loading / lastError, plus register / on / emit for managing handlers and listeners with auto-cleanup on scope disposal (onScopeDispose). Vapor-safe — works in <script setup vapor> and VDOM alike, with no getCurrentInstance() dependency. For fire-and-forget with zero reactive overhead, use defineVaporCommand() instead.

      (Absorbed the former useVaporCommand — the Vapor-safety distinction was obsolete; this is now the single command composable.)

      Returns {
          dispatch: <A extends string>(
              action: A,
              target: any,
              payload?: any,
          ) => CommandResult<any> | Promise<CommandResult<any>>;
          register: <A extends string>(
              action: A,
              handler: (cmd: Command<A, any, any>) => any,
              opts?: RegisterOptions,
          ) => () => void;
          on: (
              pattern: string,
              listener: (cmd: Command, result: CommandResult) => void,
          ) => () => void;
          emit: (event: string, data?: any) => void;
          loading: Signal<boolean>;
          lastError: Signal<Error | null>;
          dispose: () => void;
      }

      • dispatch: <A extends string>(
            action: A,
            target: any,
            payload?: any,
        ) => CommandResult<any> | Promise<CommandResult<any>>
      • register: <A extends string>(
            action: A,
            handler: (cmd: Command<A, any, any>) => any,
            opts?: RegisterOptions,
        ) => () => void
      • on: (
            pattern: string,
            listener: (cmd: Command, result: CommandResult) => void,
        ) => () => void
      • emit: (event: string, data?: any) => void
      • loading: Signal<boolean>
      • lastError: Signal<Error | null>
      • dispose: () => void
      const { dispatch, register, on, loading, lastError } = useCommand();
      register('cartAdd', (cmd) => addToCart(cmd.target));
      dispatch('cartAdd', { id: product.id });