De aquí - Rappelez-vous :
<input v-model="something">
est essentiellement la même chose que :
<input
v-bind:value="something"
v-on:input="something = $event.target.value"
>
ou (syntaxe abrégée) :
<input
:value="something"
@input="something = $event.target.value"
>
Alors v-model
est un liaison bidirectionnelle pour les entrées de formulaire . Il combine v-bind
qui apporte une valeur js dans le balisage, et v-on:input
a mettre à jour la valeur js .
Utilisez v-model
quand vous le pouvez. Utilisez v-bind
/ v-on
quand il le faut :-) J'espère que votre réponse a été acceptée.
v-model
fonctionne avec tous les types de saisie HTML de base (texte, zone de texte, nombre, radio, case à cocher, sélection). Vous pouvez utiliser v-model
con input type=date
si votre modèle stocke les dates sous forme de chaînes ISO (yyyy-mm-dd). Si vous voulez utiliser des objets date dans votre modèle (une bonne idée dès que vous allez les manipuler ou les formater), faites ceci .
v-model
a des capacités supplémentaires dont il est bon d'être conscient. Si vous utilisez un IME (beaucoup de claviers mobiles, ou chinois/japonais/coréen), v-model ne sera pas mis à jour tant qu'un mot n'est pas complet (un espace est saisi ou l'utilisateur quitte le champ). v-input
se déclencheront beaucoup plus fréquemment.
v-model
a également des modificateurs .lazy
, .trim
, .number
couvert par le doc .
11 votes
v-model
est principalement utilisé pour la saisie et la soumission de formulaires. Utilisez-le donc lorsque vous avez affaire à différents types de saisie.v-bind
La directive v-bind vous permet de produire une valeur dynamique en saisissant une expression JS qui, dans la plupart des cas, dépend des données du modèle de données. Pensez donc à v-bind comme à une directive que vous devez utiliser lorsque vous voulez traiter des éléments dynamiques.6 votes
Dans certains cas, vous pouvez utiliser chacun d'entre eux. Parfois non, par exemple :
<div v-bind:class="{ active: isActive }"></div>
- vous ne pouvez pas lier l'attribut html en utilisant le modèle, vous devez utiliserv-bind
de la directive. Pour les éléments de formulaire, vous voudrez utiliser la directivev-model
qui "choisit automatiquement la manière correcte de mettre à jour l'élément en fonction du type d'entrée".1 votes
Alexander La phrase "bind HTML attribute" m'a aidé à mieux réfléchir à cette question. Il serait bon de vous voir intervenir sur ce point avec une réponse plus complète sur ce qui se passe réellement avec ces deux constructions.
0 votes
@Alexander Esp dans le cadre de la composante
data
yprops
...