ホームページ >ウェブフロントエンド >フロントエンドQ&A >vue 入力は前後の値を変更します
Vue は、応答性の高いコンポーネントを簡単に作成できる人気の JavaScript フレームワークです。 WEB 開発では、コンポーネントの入力ボックスは最も一般的な要素の 1 つです。多くのシナリオでは、開発者は入力ボックスの値を追跡して処理する必要があります。この記事では、Vue で入力ボックスの変更された値を処理する方法について説明します。
Vue には、入力ボックスの値を監視するさまざまな方法が用意されています。最も一般的な方法は、v-model
を使用することです。 v-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>
上記の例では、次を使用します。 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)">
上記のコードでは、新しい 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)">
上記のコードでは、data
メソッドに新しい formData
オブジェクトを追加することで、複数の入力ボックスの値を維持しています。また、新しい changes
オブジェクトを追加して、すべての変更を記録します。
watch
オプションの handler
関数を変更して、formData
オブジェクトを走査するようにしました。入力ボックスの値が変更されたことを検出すると、changes
オブジェクトをチェックして入力ボックスがすでに存在するかどうかを確認し、before
と after# を設定します。 ## プロパティ値。入力ボックスが
changes オブジェクトに存在しない場合は、新しい属性が追加されます。
watch オプションの
deep プロパティを
true に設定します。これにより、
formData# のプロパティが詳細に監視されます。 ## object を使用すると、入力ボックスの値が formData
オブジェクトにネストされている場合に、データを正しく観察できます。 概要
を使用してデータ プロパティの変更を監視する方法と、入力ボックスの変更をオブジェクトに記録する方法について説明しました。実際の開発では、このテクノロジーは非常に便利で、フォーム内のすべての変更をリアルタイムで追跡するのに役立ちます。
以上がvue 入力は前後の値を変更しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。