Vue フォーム入力バインディング v-model

Vue フォーム入力バインディング v-model

1.vモデル

v-modelフォームの値と属性の双方向バインディングを実現できることを指定します。つまり、フォーム要素の値が変更されると、属性の値が自動的に更新され、属性の値が更新されると、フォームの値が自動的に更新されます。

2. プロパティとイベントのバインディング

v-model内部的に、異なる入力要素に対して異なる属性を使用し、異なるイベントをスローします。

  • 1. text要素とtextarea要素はvalue属性とinputイベントを使用します。
  • 2. checkboxとラジオボタンはchecked属性とchangeイベントを使用します。
  • 3. selectフィールドは、 valuepropとして受け取り、 changeイベントとして受け取ります。

3. フォーム要素のバインディング

3.1 入力バインディング

<input v-model="message" placeholder="入力してください...">
<p>入力内容は次のとおりです: {{ message }}</p>
 

3.2 テキストエリアバインディング

<span>入力内容は次のとおりです:</span>
<p style="white-space: pre-line;">{{ メッセージ }}</p>
<br>
<textarea v-model="message" placeholder="複数行を入力してください..."></textarea>
 

3.3 チェックボックスバインディング

同じ配列にバインドされた複数のチェックボックス

<div id="アプリ">
  <input type="checkbox" id="バスケットボール" value="バスケットボール" v-model="趣味">
  <label for="basketball">バスケットボール</label>
  <input type="checkbox" id="football" value="フットボール" v-model="趣味">
  <label for="football">サッカー</label>
  <input type="checkbox" id="バレーボール" value="バレーボール" v-model="趣味">
  <label for="volleyball">バレーボール</label>
  <p>{{趣味}}</p>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
      趣味: []
    }
  })
</スクリプト>

3.4 無線バインディング

<div id="アプリ">
  <input type="radio" id="one" value="One" v-model="picked">
  <label for="one">1つ</label>
  <br>
  <input type="radio" id="two" value="Two" v-model="picked">
  <label for="two">2</label>
  <br>
  <span>選択: {{picked }}}</span>
</div>
新しいVue({
  el: '#app',
  データ: {
    選んだもの: ''
  }
})
 

3.5 バインディングの選択

単一選択:

<div id="#app">
  <v-model を選択="選択済み">
    <option disabled value="">選択してください</option>
    <option>あ</option>
    <option>B</option>
    <option>C</option>
  </選択>
  <span>選択済み: {{ selected }}</span>
</div>
新しいVue({
  el: '...',
  データ: {
    選択: ''
  }
})

複数のオプションを選択する場合は、 multiple属性を追加するだけです

<div id="#app">
  <select v-model="selected" multiple style="width: 50px;">
    <option>あ</option>
    <option>B</option>
    <option>C</option>
  </選択>
  <br>
  <span>選択済み: {{ selected }}</span>
</div>
 

4. 値のバインディング

ラジオボタン、チェックボックス、選択ボックスオプションの場合、 v-modelにバインドされる値は通常、静的な文字列です (チェックボックスの場合はブール値になることもあります)。
しかし、場合によっては、 Vueインスタンスの動的propertyに値をバインドしたい場合があります。これはv-bindで実現でき、このpropertyの値は文字列である必要はありません。

<div id="アプリ">
  <label v-for="趣味の中の趣味">
    <input type="checkbox" :id="趣味" :value="趣味" v-model="test趣味">{{趣味}}
  </ラベル>
  <p>{{テスト趣味}}</p>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
      趣味: ["バスケットボール"、"サッカー"、"バドミントン"、"卓球"、"テニス"]、
      テスト趣味: []
    }
  })
</スクリプト>

4.1 コードの詳細

  • 1. バックエンドから返されるデータをシミュレートするために、 data内にhobbies配列を作成しました。データは動的です。
  • 2.別の配列testHobbyが定義され、チェックボックスのデータがそれにバインドされます。チェックボックスのデータがチェックされている限り、 testHobbyに追加されます。
  • 3. forループを使用してhobbiesデータのデータを走査します
  • 4. inputタグはid属性とvalue属性にバインドされており、その値は走査されたデータです。Web ページのソース コードを開くと確認できます。
  • 5. v-model inputタグをtestHobbyにバインドします。

最後に、バインディングの効果とバインディング後のWebページのソースコードを確認しましょう。

バインディング後のidとvalueの値は、トラバースされたhobbyであることがわかります

5. 修飾語

5.1 .lazy

デフォルトでは、 v-modelinputイベントがトリガーされた後に入力ボックスの値をデータと同期します。 lazy修飾子を追加すると、Enter キーが押されたとき、またはフォーカスが失われたときにのみ値が変更されるようにすることができます。

<!-- 「input」が押されたときではなく、フォーカスを失ったときや Enter キーを入力したときに値を変更します -->
<input v-model.lazy="msg">
 

5.2 .数値

ユーザーの入力値を自動的に数値型に変換する場合は、 v-modelnumber修飾子を追加します。

<input v-model.number="年齢" type="数値">


type="number"の場合でも、 HTML入力要素の値は常に文字列として返されるため、これは多くの場合便利です。 parseFloat()で値を解析できない場合は、元の値が返されます。

5.3 .トリム

ユーザーが入力した先頭と末尾の空白文字を自動的にフィルタリングしたい場合は、 v-modeltrim修飾子を追加します。

<input v-model.trim="msg">

これで、 Vueフォーム入力バインディングv-modelに関するこの記事は終了です。より関連性の高いVue v-modelコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueフォームバインディングとコンポーネントの詳細な説明
  • Vue フォームに動的にコンポーネントを追加する実例
  • Vue ループ コンポーネントと検証マルチフォーム検証の例
  • Vueフォームイベントデータバインディングの詳細な説明
  • Vue のフォームとコンポーネントの二重バインディングをご存知ですか?

<<:  Nginxの書き換えモジュールの詳細な説明

>>:  Web ページでフラッシュの wmode 属性を使用する方法をご存知ですか?

推薦する

マップタグパラメータの詳細な紹介と使用例

マップ タグはペアで表示する必要があります。 <map> ....</map>...

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...

js 学習ノート: class、super、extends キーワード

目次序文1. es6の前にオブジェクトを作成する2. es6 後のクラス宣言3. クラスの継承4. ...

VUE v-for の :key の詳細な説明

v-for タグにキーが追加されていない場合。 <!DOCTYPE html> <...

Linux でのマルチスレッドプログラミング例の分析

1 はじめにスレッド技術は 1960 年代にすでに提案されていましたが、マルチスレッドがオペレーティ...

IEウェブページのポップアップウィンドウの共通パラメータは自分で設定できます

ポップアップは、現在のウィンドウにメニューツールバーがあるかどうかとは関係ありません。ページにスクリ...

MySQL で MHA アーキテクチャのデプロイメントを構築する手順

目次マハ1. MAHアーキテクチャの概要2. 適用可能なシナリオ3. MHAの動作原理4. MHAの...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

axiosのシンプルなカプセル化と使用例コード

序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...

React のクラスからフックへの移行

目次リアクトフック序文なぜフックなのか?クラス関数クラスとフックの比較フックはコンポーネントの状態を...

Element-ui の組み込み 2 つのリモート検索 (ファジークエリ) の使用方法の説明

問題の説明フロントエンドリモート検索やファジークエリと呼ばれる種類のクエリがあります。 Ele.me...

Reactのdiffアルゴリズムの詳細な分析

Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...

MySQLのテーブル構造を変更する際に知っておきたいメタデータロックの詳しい解説

序文MySQL を扱ったことがある人なら、テーブル メタデータ ロックの待機についてよく知っているは...

PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

以下のように表示されます。名前説明する文字可変(n)、varchar(n)長さ制限あり、可変長文字(...

a タグをクリックして入力ファイルのアップロードダイアログボックスを表示する方法

htmlコードをコピーコードは次のとおりです。 <SPAN class=tag><...