ホームページ ウェブフロントエンド Vue.js Vue でレスポンシブ フォームとカスタム フォーム コンポーネントを実装するにはどうすればよいですか?

Vue でレスポンシブ フォームとカスタム フォーム コンポーネントを実装するにはどうすればよいですか?

Jun 27, 2023 pm 03:11 PM
カスタムコンポーネント レスポンシブフォーム vueフォーム

Vue は、フォーム入力を処理するための非常に便利で強力なツールを提供する、一般的に使用される JavaScript フレームワークです。 Vue は、フォームの入力、検証、送信を簡単に処理できるようにするリアクティブ プロパティとイベントを提供します。この記事では、Vue でレスポンシブ フォームとカスタム フォーム コンポーネントを実装する方法を紹介します。

1. Vue レスポンシブ フォームの実装

  1. フォーム モデル バインディング

Vue は、フォーム データと自動応答を入力するための非常に簡単な方法を提供します。 v-model ディレクティブを使用すると、フォーム上の各入力フィールドを Vue インスタンスのデータ属性にバインドして、双方向のデータ バインディングを実現できます。

例: 次のコードを通じて単純なフォームを実装できます。このコードでは、入力値が v-model を通じてデータ内のメッセージ属性にバインドされます。入力ボックスに内容を入力すると、入力ボックスの内容とデータ内のメッセージ属性値が同時に更新されます。

<template>
  <div>
    <input type="text" v-model="message" />
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: "",
    };
  },
};
</script>
ログイン後にコピー
  1. フォーム検証

フォーム検証は日常の Web 開発において避けられないタスクです。 Vue はフォーム検証を処理する独自の方法も提供しており、計算属性とウォッチャー属性を v-model ディレクティブと組み合わせて使用​​することで、フォーム値の検証を簡単に実装できます。

例: 次のコードを使用して簡単なフォーム検証を実装できます。ユーザーがパスワードを入力すると、計算属性とウォッチャー属性を使用してパスワードを検証し、ユーザーにパスワードの強度の入力を求めます。パスワード:

<template>
  <div>
    <label>请输入密码:</label>
    <input type="password" v-model="password" />
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      password: "",
    };
  },

  computed: {
    message() {
      let pwd = this.password;
      if (pwd.length <= 5) return "密码强度较弱";
      if (pwd.length <= 9) return "密码强度一般";
      return "密码强度较高";
    },
  },

  watch: {
    password(newVal, oldVal) {
      console.log(newVal, oldVal);
      if (newVal.length >= 10) {
        alert("密码长度不能超过10");
        this.password = oldVal;
      }
    },
  },
};
</script>
ログイン後にコピー
  1. フォーム送信

フォーム送信は Vue のコア機能です。v-on ディレクティブとメソッド属性を通じて、Vue メソッドをフォーム送信イベント。ユーザーがフォームに記入して送信ボタンをクリックすると、Vue はこのメソッドを呼び出し、フォーム データをパラメーターとして渡します。このメソッドでユーザーが送信したデータを処理できます。

例: 次のコードを通じて単純なフォーム送信を実装できます。ユーザーが送信ボタンをクリックすると、フォーム データを JSON でフォーマットし、コンソールに出力できます:

<template>
  <div>
    <label>请输入用户名:</label>
    <input type="text" v-model="username" />

    <label>请输入密码:</label>
    <input type="password" v-model="password" />

    <button v-on:click="submitForm">提交</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: "",
      password: "",
    };
  },

  methods: {
    submitForm() {
      let formData = {
        username: this.username,
        password: this.password,
      };

      console.log(JSON.stringify(formData));
    },
  },
};
</script>
ログイン後にコピー

2. カスタム フォーム コンポーネントの実装

Vue が提供する組み込みフォーム コンポーネントに加えて、コードの再利用とロジックを実現するための独自のニーズに従っていくつかのカスタム フォーム コンポーネントを定義することもできます。

Vue は、カスタム コンポーネントを定義するための Vue.component() メソッドを提供します。 Vue.component() メソッドを通じてコン​​ポーネントを定義し、このコンポーネントをテンプレートで使用するだけです。

次は、ユーザー定義のフォーム フィールド コンポーネントと組み込みのボタン ボタン コンポーネントを含む、単純なカスタム コンポーネントの例です。このコンポーネントでは、ユーザー定義のフォームフィールドコンポーネントと組み込みボタンコンポーネントを同じフォーム内に配置し、ユーザーがボタンをクリックするとデータの送信リクエストを発行します。

<template>
  <form>
    <custom-input v-model="username" label="用户名:" />
    <custom-input v-model="password" label="密码:" />
    <button type="button" v-on:click="submitForm">提交</button>
  </form>
</template>

<script>
Vue.component("custom-input", {
  props: ["label", "value"],
  template: `
    <div>
      <label>{{ label }}</label>
      <input type="text" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" />
    </div>
  `,
});

export default {
  data() {
    return {
      username: "",
      password: "",
    };
  },

  methods: {
    submitForm() {
      let formData = {
        username: this.username,
        password: this.password,
      };

      console.log(JSON.stringify(formData));
    },
  },
};
</script>
ログイン後にコピー

概要:

Vue でレスポンシブ フォームとカスタム フォーム コンポーネントを実装することは、Web 開発において不可欠なスキルの 1 つです。 v-model ディレクティブの双方向データ バインディング、計算された属性のフォーム検証、ウォッチャー属性のフォーム入力コントロール、および Vue.component() メソッドのカスタム フォーム コンポーネント定義を通じて、効率的、強力、そして保守が容易なフォーム処理システム。

以上がVue でレスポンシブ フォームとカスタム フォーム コンポーネントを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue フォーム処理を使用してフォームの再帰的ネストを実装する方法 Vue フォーム処理を使用してフォームの再帰的ネストを実装する方法 Aug 11, 2023 pm 04:57 PM

Vue フォーム処理を使用してフォームの再帰的ネストを実装する方法 はじめに: フロントエンド データ処理とフォーム処理が複雑になるにつれて、複雑なフォームを処理する柔軟な方法が必要です。人気のある JavaScript フレームワークとして、Vue はフォームの再帰的なネストを処理するための多くの強力なツールと機能を提供します。この記事では、Vue を使用してこのような複雑なフォームを処理する方法を紹介し、コード例を添付します。 1. フォームの再帰的なネスト シナリオによっては、再帰的なネストに対処する必要がある場合があります。

Vue でフォーム データを動的にバインドして更新する方法 Vue でフォーム データを動的にバインドして更新する方法 Oct 15, 2023 pm 02:24 PM

Vue でフォーム データを動的にバインドして更新する方法 フロントエンド開発の継続的な開発に伴い、フォームは頻繁に使用されるインタラクティブな要素です。 Vue では、フォームの動的なバインドと更新が一般的な要件です。この記事では、Vue でフォーム データを動的にバインドおよび更新する方法を紹介し、具体的なコード例を示します。 1. フォーム データの動的バインディング Vue は、フォーム データの双方向バインディングを実現する v-model 命令を提供します。 v-model ディレクティブを通じて、form 要素の値を Vue インスタンスと比較できます。

Vue フォーム処理を使用してフォーム フィールドのファイル アップロードを実装する方法 Vue フォーム処理を使用してフォーム フィールドのファイル アップロードを実装する方法 Aug 11, 2023 pm 09:52 PM

Vue フォーム処理を使用してフォーム フィールドのファイル アップロードを実装する方法 はじめに: Web アプリケーションでは、ファイルのアップロードは非常に一般的な要件です。ユーザー アバターのアップロードやコメント内の写真のアップロードなど、ユーザーがフォーム フィールドの一部としてファイルをアップロードする必要がある場合があります。 Vue を使用してフォーム フィールドのファイル アップロードを処理および実装するのは非常に簡単です。この記事では、Vue フォーム処理を使用してファイルのアップロードを実装する方法とコード例を紹介します。 Vue コンポーネントを作成する まず、ファイルアップロード用の Vue を作成する必要があります。

Vue フォーム処理を使用してフォームの無効化と有効化の制御を実装する方法 Vue フォーム処理を使用してフォームの無効化と有効化の制御を実装する方法 Aug 11, 2023 am 11:45 AM

Vue フォーム処理を使用してフォームの無効化と有効化の制御を実装する方法 Web 開発において、フォームは不可欠なコンポーネントの 1 つです。場合によっては、特定の条件に基づいてフォームの無効状態と有効状態を制御する必要があります。 Vue は、この状況に対処するための簡潔かつ効果的な方法を提供します。この記事では、Vue を使用してフォームの無効化と有効化の制御を実装する方法を詳しく紹介します。まず、基本的な Vue インスタンスとフォームを作成する必要があります。基本的な HTML と Vue のコード例は次のとおりです: &lt;divid=&

Vueフォーム処理でフォーム画像のアップロードとプレビューを実装する方法 Vueフォーム処理でフォーム画像のアップロードとプレビューを実装する方法 Aug 10, 2023 am 11:57 AM

Vue フォーム処理でフォーム イメージのアップロードとプレビューを実装する方法 はじめに: 最新の Web アプリケーションでは、フォーム処理は非常に一般的な要件です。一般的な要件の 1 つは、ユーザーが画像をアップロードしてフォームでプレビューできるようにすることです。フロントエンド フレームワークとして、Vue.js は、この要件を達成するための豊富なツールとメソッドを提供します。この記事では、Vue のフォーム処理に画像のアップロードとプレビュー機能を実装する方法を説明します。ステップ 1: Vue コンポーネントを定義する まず、Vue グループを定義する必要があります

Vue フォーム処理を使用して複雑なフォーム レイアウトを実装する方法 Vue フォーム処理を使用して複雑なフォーム レイアウトを実装する方法 Aug 11, 2023 pm 11:57 PM

Vue フォーム処理を使用して複雑なフォーム レイアウトを実装する方法 Web アプリケーションの開発において、フォームは非常に一般的な要素です。場合によっては、ビジネス ニーズを満たすために、より複雑なフォーム レイアウトを実装する必要があります。 Vue.js をフロントエンド フレームワークとして使用すると、複雑なフォーム レイアウトを簡単に処理し、データの双方向バインディングを実装できます。この記事では、Vue フォーム処理を使用して複雑なフォーム レイアウトを実装する方法を紹介し、対応するコード例を添付します。 Vue コンポーネント化のアイデアを使用して複雑なフォームを処理する

Vue フォーム処理を使用してフォームフィールドの条件付き検証を実装する方法 Vue フォーム処理を使用してフォームフィールドの条件付き検証を実装する方法 Aug 10, 2023 pm 06:01 PM

Vue フォーム処理を使用してフォーム フィールドの条件付き検証を実装する方法 Web 開発において、フォームはユーザーがアプリケーションと対話するための重要な方法の 1 つです。フォームの入力検証は、データの正確性と完全性を確保する上で重要な役割を果たします。 Vue は、フロントエンド フォーム検証を処理するためのシンプルかつ強力な方法を提供する人気のある JavaScript フレームワークです。この記事では、Vue フォーム処理を使用してフォーム フィールドの条件付き検証を実装する方法を紹介します。 Vue は、フォーム フィールドの条件付き検証を実装するための一連の命令と式を提供します。

uniapp がカスタム コンポーネントを使用してページの再利用を実現する方法を実装する方法 uniapp がカスタム コンポーネントを使用してページの再利用を実現する方法を実装する方法 Oct 20, 2023 am 08:38 AM

UniApp は、Vue.js をベースとしたクロスプラットフォーム開発フレームワークで、ミニ プログラム、H5、App などの複数のプラットフォーム向けのアプリケーションを同時に開発できます。 UniApp では、カスタム コンポーネントを使用してページの再利用を実現し、開発効率を向上させることができます。以下では、カスタム コンポーネントを使用してページの再利用を実現する方法とコード例を紹介します。 1. カスタム コンポーネントを作成する まず、UniApp プロジェクトのコンポーネント ディレクトリに新しいフォルダーを作成し、custom- という名前を付けます。

See all articles