# Démarrage rapide Nuxt

Ajoutez un formulaire de contact fonctionnel à votre application Nuxt. Vous écrivez le formulaire, et Formerie le vérifie, le conserve et vous l’envoie par courriel.

## Installer

npm:

```sh
npm install @formerie/nuxt
```

pnpm:

```sh
pnpm add @formerie/nuxt
```

Yarn:

```sh
yarn add @formerie/nuxt
```

Bun:

```sh
bun add @formerie/nuxt
```

Les paquets Formerie sont en alpha, donc leurs API peuvent encore changer d’une version à l’autre.

## Ajouter le formulaire

Enregistrez ce fichier sous `app/components/ContactForm.vue`.

```vue
<script setup lang="ts">
import { useFormerieSubmit } from "@formerie/nuxt";

const { submit, isSubmitting, result } = useFormerieSubmit({ workspace: "acme", form: "contact" });

function onSubmit(event: Event) {
  submit({ fields: Object.fromEntries(new FormData(event.target as HTMLFormElement)) });
}
</script>

<template>
  <form @submit.prevent="onSubmit">
    <input name="name" placeholder="Name" required />
    <input name="email" type="email" placeholder="Email" required />
    <textarea name="message" placeholder="Message" required></textarea>
    <button :disabled="isSubmitting">Send</button>
    <p v-if="result?.ok === true">Thanks!</p>
    <p v-else-if="result?.ok === false">{{ result.error.message }}</p>
  </form>
</template>
```

Le `name` de chaque champ de saisie correspond au champ qu’il remplit dans Formerie.

## Configurer le formulaire dans l’application

1. Ouvrez [app.formerie.com](https://app.formerie.com) et créez un formulaire nommé **Contact**. Il vient avec les
   champs de nom, de courriel et de message que ce code envoie.
2. Dans l’onglet **Livraison**, ajoutez votre adresse courriel, puis choisissez **Enregistrer la livraison**. Confirmez le
   courriel que Formerie vous envoie.
3. Dans l’onglet **Publication**, choisissez **API seulement** et ajoutez l’adresse qu’affiche votre serveur de développement, comme
   `http://localhost:3000`, sous **Adresses de vos sites**. `localhost` et `127.0.0.1` comptent comme deux adresses différentes.
   Ajoutez l’adresse de votre site en ligne de la même façon au moment de le déployer.
4. Choisissez **Publier le formulaire**.
5. Dans le code ci-dessus, remplacez `acme` par l’identifiant d’espace de travail affiché dans l’onglet **Publication**.

## Vérifier que c’est arrivé

Lancez votre application, remplissez le formulaire et envoyez-le. « Thanks! » s’affiche dans la page, un texte que vous
pouvez changer. Dans l’application Formerie, votre réponse apparaît sous **Soumissions**, et son courriel sous **Livraisons**.

Vous voyez une erreur CORS ou `NETWORK_ERROR`? L’adresse de votre site n’est pas encore dans l’onglet **Publication**, ou vous n’avez pas republié
depuis que vous l’avez ajoutée. Consultez [Dépannage](/fr/guides/troubleshooting/).

## Aller plus loin

### À partir de votre serveur

Ajoutez une route serveur, et un formulaire natif pourra y envoyer ses réponses. Elle ne fonctionne pas encore avec un formulaire qui demande une vérification humaine.
Lisez [ce que l’approche par le serveur implique](/fr/guides/framework-entry-points/#à-partir-de-votre-serveur) avant de la choisir.

```ts
import { readFormData } from "h3";
import { createFormerieNuxtSubmitHandler } from "@formerie/nuxt";

export default defineEventHandler(
  createFormerieNuxtSubmitHandler({ workspace: "acme", form: "contact" }, { readFormData }),
);
```

## À lire ensuite

- [Recettes](/fr/guides/recipes/) : demandes de soumission, sondages et acheminement par sujet
- [Afficher les erreurs de champ et plus encore](/fr/guides/framework-entry-points/#aller-plus-loin)
- [SDK JavaScript](/fr/guides/javascript-sdk/) et [API](/fr/guides/api-reference/) : la référence complète
