Guide
Essentiel
- Installation
- Introduction
- Instance de Vue
- Syntaxe de template
- Propriétés calculées et observateurs
- Liaisons de classes et de styles
- Rendu conditionnel
- Rendu de liste
- Gestion des évènements
- Liaisons sur les champs de formulaire
- Composants
Composants en détail
- Création de composants
- Props
- Évènements personnalisés
- Slots
- Composants dynamiques et asynchrones
- Gérer les cas limites
Transitions & animation
- Transitions d'entrée, de sortie et de liste
- Transitions d'état
Réutilisabilité & composition
- Mixins
- Directives personnalisées
- Fonctions de rendu et JSX
- Plugins
- Filtres
Outils
- Composants monofichiers
- Testing
- Support de TypeScript
- Déploiement en production
Évolutions
- Routage
- Gestion de l'état
- Rendu côté serveur
- Security
Mécanismes
- Réactivité en détail
Migration
- Migration depuis Vue 1.x
- Migration depuis Vue Router 0.7.x
- Migration depuis Vuex 0.6.x à 1.0
Meta
- Comparaison avec les autres frameworks
- Rejoignez la communauté Vue.js !
- Rencontrer l'équipe
You’re browsing the documentation for v2.x and earlier. For v3.x, click here.
Liaisons sur les champs de formulaire
Usage basique
Vous pouvez utiliser la directive v-model
pour créer une liaison de données bidirectionnelle sur les champs de formulaire (input, select ou textarea). Elle choisira automatiquement la bonne manière de mettre à jour l’élément en fonction du type de champ. Bien qu’un peu magique, v-model
est essentiellement du sucre syntaxique pour mettre à jour les données lors des évènements de saisie utilisateur sur les champs, ainsi que quelques traitements spéciaux pour certains cas particuliers.
v-model
ne prend pas en compte la valeur initiale des attributs value
, checked
ou selected
fournis par un champ. Elle traitera toujours les données de l’instance de Vue comme la source de vérité. Vous devez déclarer la valeur initiale dans votre JavaScript, dans l’option data
de votre composant.
v-model
utilise en interne différentes propriétés et émetteurs d’évènement pour différents éléments de saisie :
- Les éléments
text
ettextarea
utilisent la propriétévalue
et évènementinput
; - Les éléments
checkboxes
etradiobuttons
utilisent la propriétéchecked
et l’évènementchange
; - Les éléments
select
utilisentvalue
comme une prop etchange
comme un évènement.
Pour les langues qui requièrent une méthode de saisie (IME) (chinois, japonais, coréen, etc.), vous remarquerez que v-model
ne sera pas mise à jour durant l’exécution de la méthode de saisie. Si vous souhaitez également prendre en compte ces mises à jour, utilisez plutôt l’évènement input
.
Texte
|
Le message est : {{ message }}
Texte multiligne
|
{{ message }}
L'interpolation sur les zones de texte (<textarea>{{text}}</textarea>
) ne fonctionnera pas. Utilisez v-model
à la place.
Checkbox
Checkbox seule, valeur booléenne :
|
Checkboxes multiples, liées au même tableau (Array) :
|
|
Noms cochés : {{ checkedNames }}
Radio
|
Choisi : {{ picked }}
Select
Select à choix unique :
|
|
>Si la valeur initiale de votre expression dans v-model
ne correspond à aucune des options, l’élément <select>
va faire le rendu dans un état « non sélectionné ». Sur iOS cela va conduire l’utilisateur à ne pas pouvoir sélectionner le premier élément car aucun évènement change
n’est déclenché dans ce cas. Il est cependant recommandé de fournir une option désactivée avec une valeur vide comme dans l’exemple ci-dessus.
Select à choix multiples (lié à un tableau) :
|
Sélectionné(s) : {{ selected }}
Options dynamiques générées avec v-for
:
|
|
Liaisons des attributs value
Pour les boutons radio, les cases à cocher et les listes d’options, les valeurs de liaison de v-model
sont habituellement des chaines de caractères statiques (ou des booléens pour une case à cocher) :
|
Mais parfois nous pouvons souhaiter lier la valeur à une propriété dynamique de l’instance de Vue. Nous pouvons réaliser cela en utilisant v-bind
. De plus, utiliser v-bind
nous permet de lier la valeur de l’input à des valeurs qui ne sont pas des chaines de caractères.
Checkbox
|
|
Les attributs true-value
et false-value
n’affectent pas la valeur de l’attribut value
, car les navigateurs n’incluent pas les cases non cochées dans les soumissions de formulaire. Pour garantir que l’une des deux valeurs soit soumise par le formulaire (par ex. « oui » ou « non »), utilisez les boutons radio à la place.
Radio
|
|
Options de select
|
|
Modificateurs
.lazy
Par défaut, v-model
synchronise le champ avec les données après chaque évènement input
(à l’exception de l’exécution d’une méthode de saisie comme mentionné plus haut). Vous pouvez ajouter le modificateur lazy
pour synchroniser après les évènements change
à la place :
|
.number
Si vous voulez que la saisie utilisateur soit automatiquement convertie en nombre, vous pouvez ajouter le modificateur number
à vos champs gérés par v-model
:
|
C’est souvent utile, parce que même avec type="number"
, la valeur des éléments de saisie HTML retourne toujours une chaine de caractères. Si la valeur ne peut pas être transformée avec parseFloat()
, alors la valeur originale est retournée.
.trim
Si vous voulez que les espaces superflus des saisies utilisateur soient automatiquement retirés, vous pouvez ajouter le modificateur trim
à vos champs gérés par v-model
:
|
v-model
avec les composants
Si vous n’êtes pas encore familier avec les composants de Vue, passez cette section pour le moment.
Les types de saisie intégrés au HTML ne répondront pas toujours à vos besoins. Heureusement, les composants de Vue vous permettent de créer des entrées réutilisables avec un comportement entièrement personnalisé. Ces entrées fonctionnent même avec le v-model
!
Pour en apprendre plus, lisez la section champs personnalisés dans le guide des composants.