Vue Academy · leksjon

Controls, actions og args

argTypes for kontrollgrensesnittet, actions-addon for logging av hendelser og play() for interaksjonstester.

Leksjon 3 av 413 trinn

Controls, actions og args er en gratis leksjon i Vue Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Vue Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Vue Academy inneholder totalt 4 leksjoner.

Interaktive kontroller

Storybooks Controls-panel gjør en storys args om til aktive skjemafelt. Du endrer en prop, og komponenten gjengis på nytt umiddelbart – uten kodeendringer. Du utformer disse feltene med argTypes.

Definere argTypes

argTypes beskriver hver prop: kontrolltypen, alternativer og dokumentasjon. Det ligger i meta-objektet sammen med args.

export default {
  component: Button,
  argTypes: {
    label: { control: "text" },
  },
}

Text- og boolean-kontroller

Kontrolltypen velger kontrollen. text gir et tekstfelt, mens boolean gir en av/på-bryter.

argTypes: {
  label: { control: "text" },
  disabled: { control: "boolean" },
}

Select-kontroller med options

For et fast sett med verdier bruker du select-kontrollen med en options-matrise. Panelet viser en rullegardinmeny.

argTypes: {
  variant: {
    control: "select",
    options: ["primary", "secondary", "danger"],
  },
}

Farge- og tallkontroller

Andre nyttige kontroller er color, som åpner en fargevelger, og number (eller range), som gir numerisk inndata.

argTypes: {
  background: { control: "color" },
  count: { control: { type: "range", min: 0, max: 10 } },
}

Actions-tillegget

Actions-tillegget logger hendelser i et panel, slik at du kan bekrefte at en komponent sender dem riktig. Du kobler en arg til en loggefunksjon med fn().

import { fn } from "@storybook/test"

export default {
  component: Button,
  args: {
    onClick: fn(),
  },
}

Slik fungerer fn()

fn() oppretter en spy som logger kall i Actions-panelet. Når komponenten kaller handleren (for eksempel en sendt click-hendelse som er koblet til onClick), ser du kallet og argumentene.

args: {
  onSubmit: fn(),
}
// Clicking submit logs "onSubmit" with payload in the Actions panel

Koble hendelser til behandlere

Vue sender hendelser, og Storybook kobler en on<Event>-arg til denne utsendingen. En sendt update-hendelse blir tilgjengelig gjennom en onUpdate-action-arg.

argTypes: {
  onUpdate: { action: "update" },
}

play-funksjonen

En story kan inneholde en play-funksjon som kjøres etter gjengivelsen for å simulere brukerinteraksjon – klikking og skriving – og kontrollere resultatet. Slik blir en story til en interaksjonstest.

import { expect, userEvent, within } from "@storybook/test"

export const Clicks = {
  play: async ({ canvasElement }) => {
    const canvas = within(canvasElement)
    await userEvent.click(canvas.getByRole("button"))
  },
}

Assertions i play

Inne i play kan du bruke expect til å kontrollere at en action ble kalt, slik at interaksjonstestene blir synlige direkte i Storybook.

export const Submits = {
  args: { onSubmit: fn() },
  play: async ({ args, canvasElement }) => {
    const canvas = within(canvasElement)
    await userEvent.click(canvas.getByRole("button"))
    await expect(args.onSubmit).toHaveBeenCalled()
  },
}

Hvorfor Controls + Actions + play er viktige

Sammen gjør de stories kraftige: Controls utforsker props, Actions bekrefter at hendelser utløses, og play automatiserer interaksjoner og kontroller – dokumentasjon og tester på ett sted.

Hurtigsjekk

Sjekk forståelsen din av kontroller og actions.

Oppsummering

Du har lært om kontroller, actions og args:

  • argTypes utformer Controls-panelet: text, boolean, select (med options), color, number/range.
  • Actions-tillegget logger hendelser. Koble til behandlere med fn(), eller koble hendelser via action.
  • play-funksjonen kjøres etter gjengivelsen for å simulere interaksjoner med userEvent og kontrollere med expect.
  • Sammen gjør de stories utforskbare, etterprøvbare og selv­dokumenterende.
Gratis å komme i gang

Lær deg HTML med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
42
Leksjoner
156

Ofte stilte spørsmål

Er leksjonen «Controls, actions og args» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Vue Academy, inkludert «Controls, actions og args», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Vue Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Controls, actions og args»?

argTypes for kontrollgrensesnittet, actions-addon for logging av hendelser og play() for interaksjonstester. Du øver på Vue Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Vue Academy?

Ingen tidligere erfaring er nødvendig. Vue Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Controls, actions og args»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Vue Academy-leksjonen?

Ja. Alle Vue Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Sette opp Storybook for Vue 3
  2. Skrive komponenthistorier
  3. Controls, actions og args
  4. Storybook-addons og tilgjengelighetstesting
← Tilbake til Vue Academy