Table des matières
Écoutez la zone de saisie
记录输入框修改前后的值
记录多个输入框的值
总结
Maison interface Web Questions et réponses frontales l'entrée vue change les valeurs avant et après

l'entrée vue change les valeurs avant et après

May 11, 2023 pm 12:35 PM

Vue est un framework JavaScript populaire qui facilite la création de composants réactifs. Dans le développement WEB, les zones de saisie dans les composants sont l'un des éléments les plus courants. Dans de nombreux scénarios, les développeurs doivent suivre la valeur d'une zone de saisie et la traiter. Dans cet article, nous verrons comment gérer les valeurs modifiées des zones de saisie dans Vue.

Écoutez la zone de saisie

Vue propose diverses façons de surveiller la valeur de la zone de saisie. La méthode la plus courante consiste à utiliser v-model. La directive v-model implémente une liaison bidirectionnelle, ce qui signifie que les modifications apportées à la zone de saisie seront reflétées dans les attributs de données dans l'instance du composant, et lorsque la valeur de l'attribut de données change, l'entrée La boîte affichera également la valeur correspondante qui sera automatiquement mise à jour. v-modelv-model 指令实现了双向绑定, 这意味着对输入框的修改将反映在组件实例中的数据属性上, 并且当数据属性的值发生改变时, 输入框中也会自动更新对应的值。

以下是一个简单的例子,演示了如何使用 v-model 监听一个文本输入框的值:

<template>
  <div>
    <label for="username">用户名:</label>
    <input id="username" v-model="username">
    <p>用户名: {{ username }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: ""
    };
  }
};
</script>
Copier après la connexion

在上面的例子中, 我们使用 v-model 绑定了一个文本输入框,并在组件实例中维护了一个 username 数据属性。 当用户在输入框中输入值时, username 数据属性将自动更新, 并且在模板中的差值表达式 {{ username }} 也将随之更新。

记录输入框修改前后的值

在一些场景中,我们需要知道输入框的修改前后的值。比如在表单中,我们希望能够跟踪用户所做的更改, 并将这些更改保存到一个 changes 数组中以备后续使用。

在 Vue 中,我们可以使用 watch 来监控数据属性的变化。当数据属性的值发生改变时,我们可以使用 handler 函数来执行一些操作。

我们可以使用以下代码来记录单个输入框的修改前后值:

<template>
  <div>
    <label for="username">用户名:</label>
    <input id="username" v-model="username">
    <p>用户名: {{ username }}</p>
    <pre v-text="JSON.stringify(changes)">
<script> export default { data() { return { username: "", changes: [] }; }, watch: { username(newVal, oldVal) { if (newVal !== oldVal) { this.changes.push({ before: oldVal, after: newVal }); } } } }; </script>
Copier après la connexion

在上面的代码中, 我们通过新增一个 changes 数组, 来记录输入框的每次修改。 我们稍微修改了 watch 选项中的 handler 函数,现在它将在输入框的值变化时被触发。 当新值不等于旧值时, 我们将前一个值和后一个值以对象的形式存入 changes 数组中。

记录多个输入框的值

在实际开发中, 我们通常需要监控多个输入框的值。在这种情况下, 我们可以使用一个格式相同的对象来存储所有的输入框更改。 对象中的属性名是输入框的 ID 或名称,而属性值是一个对象, 其中包含输入框修改前后的值。

<template>
  <div>
    <label for="username">用户名:</label>
    <input id="username" v-model="formData.username">
    <p>用户名: {{ formData.username }}</p>

    <label for="email">邮箱:</label>
    <input id="email" v-model="formData.email">
    <p>邮箱: {{ formData.email }}</p>

    <pre v-text="JSON.stringify(changes)">
<script> export default { data() { return { formData: { username: "", email: "" }, changes: {} }; }, watch: { formData: { handler(newVal, oldVal) { // 遍历对象 formData for (const key in newVal) { // 如果 newValue 和 oldValue 不同 if (newVal[key] !== oldVal[key]) { // 新增一个属性,属性名为输入框的名称或 ID if (!this.changes[key]) { this.$set(this.changes, key, {}); } // 设置属性值, 属性值包含 before 和 after 两个字段 this.changes[key].before = oldVal[key]; this.changes[key].after = newVal[key]; } } }, // 深度监听对象中的属性,当数据属性的值发生改变时,handler 中 callBack 函数将被执行。 deep: true } } }; </script>
Copier après la connexion

在上面的代码中, 我们通过在 data 方法中新增一个 formData 对象来维护多个输入框的值。我们还通过新增一个 changes 对象来记录所有的更改。

我们修改了 watch 选项中的 handler 函数, 现在它对 formData 对象进行遍历。当检测到某个输入框的值更改时, 它将检查 changes 对象是否已经存在这个输入框,并设置 beforeafter 属性值。如果 changes 对象中不存在该输入框, 则会新增一个属性。

我们还将 watch 选项的 deep 属性设置为 true, 这将深度监控 formData 对象的属性, 使得当输入框中的值嵌套在 formData 对象中时,数据也可以被正确地观测到。

总结

在本文中, 我们讨论了在 Vue 中如何处理输入框的修改前后值。 我们看到了如何使用 watch

Ce qui suit est un exemple simple qui montre comment utiliser v-model pour surveiller la valeur d'une zone de saisie de texte : 🎜rrreee🎜Dans l'exemple ci-dessus, nous utilisons v-model code> lie une zone de saisie de texte et conserve un attribut de données <code>username dans l'instance du composant. Lorsque l'utilisateur saisit une valeur dans la zone de saisie, l'attribut de données username sera automatiquement mis à jour et l'expression de différence {{ username }} dans le modèle sera également mise à jour. par conséquent. . 🎜🎜Enregistrez la valeur de la zone de saisie avant et après modification🎜🎜Dans certains scénarios, nous devons connaître la valeur de la zone de saisie avant et après modification. Par exemple, dans un formulaire, nous voulons pouvoir suivre les modifications apportées par l'utilisateur et enregistrer ces modifications dans un tableau changes pour une utilisation ultérieure. 🎜🎜Dans Vue, nous pouvons utiliser watch pour surveiller les changements dans les attributs des données. Lorsque la valeur d'un attribut de données change, nous pouvons utiliser la fonction handler pour effectuer certaines opérations. 🎜🎜Nous pouvons utiliser le code suivant pour enregistrer les modifications avant et après d'une seule zone de saisie : 🎜rrreee🎜Dans le code ci-dessus, nous enregistrons chaque modification de la zone de saisie en ajoutant un nouveau tableau changes . Nous avons légèrement modifié la fonction handler dans l'option watch afin qu'elle soit désormais déclenchée lorsque la valeur de la zone de saisie change. Lorsque la nouvelle valeur n'est pas égale à l'ancienne valeur, nous stockons la valeur précédente et la valeur suivante sous forme d'objets dans le tableau changes. 🎜🎜Enregistrez les valeurs de plusieurs zones de saisie🎜🎜Dans le développement réel, nous devons généralement surveiller les valeurs de plusieurs zones de saisie. Dans ce cas, nous pouvons utiliser un objet avec le même format pour stocker toutes les modifications de la zone de saisie. Le nom de l'attribut dans l'objet est l'ID ou le nom de la zone de saisie, et la valeur de l'attribut est un objet qui contient la valeur avant et après la modification de la zone de saisie. 🎜rrreee🎜Dans le code ci-dessus, nous conservons les valeurs de plusieurs zones de saisie en ajoutant un nouvel objet formData dans la méthode data. Nous enregistrons également toutes les modifications en ajoutant un nouvel objet changes. 🎜🎜Nous avons modifié la fonction handler dans l'option watch afin qu'elle traverse désormais l'objet formData. Lorsqu'il détecte que la valeur d'une zone de saisie change, il vérifie si l'objet changes existe déjà et définit la valeur des attributs avant et après. Si la zone de saisie n'existe pas dans l'objet changes, un nouvel attribut sera ajouté. 🎜🎜Nous définissons également la propriété deep de l'option watch sur true, ce qui surveillera en profondeur les propriétés du formData code> object , de sorte que lorsque la valeur dans la zone de saisie est imbriquée dans l'objet <code>formData, les données peuvent être observées correctement. 🎜🎜Résumé🎜🎜Dans cet article, nous avons expliqué comment gérer les valeurs modifiées des zones de saisie dans Vue. Nous avons vu comment utiliser watch pour surveiller les modifications apportées aux propriétés des données et comment enregistrer les modifications apportées aux champs de saisie d'un objet. Dans le développement réel, cette technologie est très utile et peut nous aider à suivre toutes les modifications du formulaire en temps réel. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Mar 21, 2025 pm 06:23 PM

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.

See all articles