Vue でログインと登録テンプレートを実装するためのサンプルコード

Vue でログインと登録テンプレートを実装するためのサンプルコード

テンプレート 1:

ログイン.vue

<テンプレート>
	<p class="ログイン">
		<el-tabs v-model="アクティブ名" @tab-click="ハンドルクリック">
			<el-tab-pane label="ログイン" name="first">
				<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
					<el-form-item label="名前" prop="名前"><el-input v-model="ruleForm.name"></el-input></el-form-item>
 
					<el-form-item label="パスワード" prop="pass"><el-input type="password" v-model="ruleForm.pass" auto-complete="off"></el-input></el-form-item>
 
					<el-form-item>
						<el-button type="primary" @click="submitForm('ruleForm')">ログイン</el-button>
 
						<el-button @click="resetForm('ruleForm')">リセット</el-button>
					</el-form-item>
				</el-form>
			</el-tab-pane>
 
			<el-tab-pane label="登録" name="second">
				<登録></登録>
			</el-tab-pane>
		</el-tabs>
	</p>
</テンプレート>
 
<スクリプト>
'@/components/register' からレジスタをインポートします。
 
エクスポートデフォルト{
	データ() {
		var validPass = (ルール、値、コールバック) => {
			(値 === '')の場合{
				callback(new Error('パスワードを入力してください'));
			} それ以外 {
				if (this.ruleForm.checkPass !== '') {
					this.$refs.ruleForm.validateField('checkPass');
				}
 
				折り返し電話();
			}
		};
 
		戻る {
			アクティブ名: 'first',
			ルールフォーム: {
				名前: ''、
				合格: ''、
				チェックパス: ''
			},
			ルール:
				名前: [{ 必須: true、メッセージ: '名前を入力してください'、トリガー: 'ぼかし' }、{ 最小: 2、最大: 5、メッセージ: '長さは 2 文字から 5 文字の間でなければなりません'、トリガー: 'ぼかし' }]、
				パス: [{ 必須: true、バリデータ: validPass、トリガー: 'blur' }]
			}
		};
	},
 
	メソッド: {
		//タブ切り替え handleClick(tab, event) {},
		//フォームをリセットする resetForm(formName) {
			this.$refs[フォーム名].resetFields();
		},
		//フォームを送信する submitForm(formName) {
			this.$refs[formName].validate(valid => {
				(有効)の場合{
					this.$メッセージ({
						タイプ: '成功'、
						メッセージ: 「ログインに成功しました」
					});
					this.$router.push('home');
				} それ以外 {
					console.log('送信エラー!!');
					false を返します。
				}
			});
		}
	},
	コンポーネント:
		登録する
	}
};
</スクリプト>
 
<スタイル lang="scss">
。ログイン {
	幅: 400ピクセル;
	マージン: 0 自動;
}
 
.el-tabitem {
	テキスト配置: 中央;
	幅: 60ピクセル;
}
</スタイル>

登録.vue

//コンポーネントを登録する <テンプレート>
	<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
		<el-form-item label="ユーザー名" prop="名前"><el-input v-model="ruleForm.name"></el-input></el-form-item>
		<el-form-item label="パスワード" prop="pass"><el-input type="password" v-model="ruleForm.pass" auto-complete="off"></el-input></el-form-item>
		<el-form-item label="パスワードの確認" prop="checkPass"><el-input type="password" v-model="ruleForm.checkPass" auto-complete="off"></el-input></el-form-item>
		<el-form-item>
			<el-button type="primary" @click="submitForm('ruleForm')">登録</el-button>
			<el-button @click="resetForm('ruleForm')">リセット</el-button>
		</el-form-item>
	</el-form>
</テンプレート>
 
<スクリプト>
エクスポートデフォルト{
	データ() {
		var validPass = (ルール、値、コールバック) => {
			(値 === '')の場合{
				callback(new Error('パスワードを入力してください'));
			} それ以外 {
				if (this.ruleForm.checkPass !== '') {
					this.$refs.ruleForm.validateField('checkPass');
				}
				折り返し電話();
			}
		};
 
		var validPass2 = (ルール、値、コールバック) => {
			(値 === '')の場合{
				callback(new Error('パスワードをもう一度入力してください'));
			} そうでない場合 (値 !== this.ruleForm.pass) {
				callback(new Error('2回入力されたパスワードが一致しません!'));
			} それ以外 {
				折り返し電話();
			}
		};
 
		戻る {
			アクティブ名: 'second',
			ルールフォーム: {
				名前: ''、
				合格: ''、
				チェックパス: ''
			},
			ルール:
				名前: [{ 必須: true、メッセージ: '名前を入力してください'、トリガー: 'ぼかし' }、{ 最小: 2、最大: 5、メッセージ: '長さは 2 文字から 5 文字の間でなければなりません'、トリガー: 'ぼかし' }]、
				パス: [{ 必須: true、バリデータ: validPass、トリガー: 'blur' }],
				checkPass: [{ 必須: true、バリデータ: validatorPass2、トリガー: 'blur' }]
			}
		};
	},
 
	メソッド: {
		送信フォーム(フォーム名) {
			this.$refs[formName].validate(valid => {
				(有効)の場合{
					this.$メッセージ({
						タイプ: '成功'、
						メッセージ: 「登録が完了しました」
					});
					// this.activeName: 'first',
				} それ以外 {
					console.log('送信エラー!!');
					false を返します。
				}
			});
		},
 
		resetForm(フォーム名) {
			this.$refs[フォーム名].resetFields();
		}
	}
};
</スクリプト>

レンダリング

テンプレート 2:

ログイン.vue

<テンプレート>
  <el-row type="flex" justify="center">
   <el-form ref="formData" :model="formData" :rules="rules" label-width="80px" @keyup.enter.native="login()">
    <el-form-item prop="userName" label="ユーザー名"><el-input v-model="formData.userName" placeholder="ユーザー名を入力してください" prefix-icon="icon-login_user" clearable></el-input></el-form-item>
    <el-form-item prop="password" label="パスワード"><el-input v-model="formData.password" placeholder="パスワードを入力してください" type="password" prefix-icon="icon-login_pwd" clearable></el-input></el-form-item>
    </el-form-item>
    <el-form-item><el-button type="primary" class="btn" @click="login('formData')" icon="el-icon-upload">ログイン</el-button>
     <el-button @click="resetForm('formData')">リセット</el-button></el-form-item></el-form-item>
     <router-link to="register">パスワードがありませんか?登録</router-link>
   </el-form>
  </el-row>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
 データ() {
  戻る {
   フォームデータ: {
    ユーザー名: ''、
    パスワード: ''
   },
   ルール:
    ユーザー名: [{ 必須: true、メッセージ: 'ユーザー名は空にできません'、トリガー: 'blur' }]、
    パスワード: [{ 必須: true、メッセージ: 'パスワードは空欄にできません'、トリガー: 'blur' }]
   }
  };
 },
 メソッド: {
  ログイン(フォーム名) {
 
    this.$refs[formName].validate(valid => {
				(有効)の場合{
					this.$メッセージ({
						タイプ: '成功'、
						メッセージ: 「ログインに成功しました」
          });
           this.$router.push({name:'home'});
				} それ以外 {
					console.log('送信エラー!!');
					false を返します。
				}
			});
  },
   resetForm(フォーム名) {
			this.$refs[フォーム名].resetFields();
		}
 }
};
</スクリプト>

登録.vue

<テンプレート>
  <el-row type="flex" justify="center">
   <el-form ref="formData" :model="formData" :rules="rules" label-width="80px" @keyup.enter.native="register()">
    <el-form-item prop="userName" label="ユーザー名"><el-input v-model="formData.userName" placeholder="ユーザー名を入力してください" prefix-icon="icon-login_user" clearable></el-input></el-form-item>
    <el-form-item prop="password" label="パスワード"><el-input v-model="formData.password" placeholder="パスワードを入力してください" type="password" prefix-icon="icon-login_pwd" clearable></el-input></el-form-item>
    <el-form-item prop="cheackPassword" label="パスワードの確認"><el-input v-model="formData.cheackPassword" placeholder="パスワードをもう一度入力" type="password" prefix-icon="icon-login_pwd" clearable></el-input></el-form-item>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="register('formData')" icon="el-icon-upload">登録</el-button>
      <el-button @click="resetForm('formData')">リセット</el-button></el-form-item>
     <router-link to="login">すでにパスワードをお持ちですか?ログイン</router-link>
 
   </el-form>
  </el-row>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
 データ() {
   var validPass = (ルール、値、コールバック) => {
			(値 === '')の場合{
				callback(new Error('パスワードをもう一度入力してください'));
			} そうでない場合 (値 !== this.formData.password) {
				callback(new Error('2回入力されたパスワードが一致しません!'));
			} それ以外 {
				折り返し電話();
			}
		};
 
  戻る {
   フォームデータ: {
    ユーザー名: ''、
    パスワード: ''、
    パスワードを確認してください:''
   },
   ルール:
    ユーザー名: [{ 必須: true、メッセージ: 'ユーザー名は空にできません'、トリガー: 'blur' }]、
    パスワード: [{ 必須: true、メッセージ: 'パスワードは空欄にできません'、トリガー: 'blur' }]、
    checkPassword: [{ 必須: true、検証: v​​alidator: validPass、トリガー: 'blur' }]
 
   }
  };
 },
 メソッド: {
  登録(フォーム名) {
   this.$refs[formName].validate(valid => {
				(有効)の場合{
					this.$メッセージ({
						タイプ: '成功'、
						メッセージ: 「登録が完了しました」
          });
           this.$router.push({name:'login'});
				} それ以外 {
					console.log('送信エラー!!');
					false を返します。
				}
			});
  },
  resetForm(フォーム名) {
			this.$refs[フォーム名].resetFields();
		}
 
 }
};
</スクリプト>

レンダリング

これで、ログインと登録テンプレートを実装するための Vue のサンプルコードに関するこの記事は終了です。Vue ログインと登録テンプレートの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue 学習ロード ログイン登録サンプルコード
  • Vue.jsは、ユーザーコメント、ログイン、登録、情報変更機能を実装します。
  • vueログイン登録例の詳しい説明
  • Vue に登録してログイン状態を維持する方法
  • アカウントとパスワードを記憶する機能を実現するVueの考え方とプロセス

<<:  Dockerはbusyboxを使用してベースイメージを作成します

>>:  MySQLで重複データを削除する詳細な例

推薦する

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

MySQL で '%' を含むフィールドをクエリする方法の詳細な説明 (ESCAPE の使用法)

SQLのlike文では、例えば SELECT * FROM user WHERE username...

CSS3 は下部に固定されたフッターを実装します (ページの高さに関係なく常に下部にあります)

序文フッター領域を下部に固定します。ページの高さや幅に関係なく、モバイル メニューと同様に、フッター...

CentOS 7.3 で Nginx 仮想ホストを設定する方法

実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...

Web でよく使われるフォントの紹介 (iOS および Android ブラウザでサポートされているフォント)

年末なので仕事も少なくなっています。私が何もせずにいるのを見ると、上司はきっと不快に思うでしょう。そ...

クラウドネイティブテクノロジーKubernetesスケジューリングユニットポッドの使用の詳細な説明

k8s の最小のスケジューリング単位 --- pod前回の記事では、k8s が解決できる問題を簡単に...

HTMLファイルで外部CSSファイルを導入する場合のパスの書き方について簡単にまとめます

1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...

Vue-routerルーティングの使い方

目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...

nginx を使用して http を https に変換するサンプルコード

最近、小さなプログラムを書いています。その小さなプログラムの公式ウェブサイトはhttpsを使用する必...

Vueでクラススタイルを使用する方法の詳細

目次1. ブール2. 表現3. マルチクラスパッケージ4. v-bind でクラス class を直...

CentOS8 - bash: 文字化けとその解決方法

この状況は通常、中国語言語パックがインストールされていないか、デフォルトの言語設定に問題があるために...

HTML の 2 つのタブ ナビゲーション間の競合の解決方法

まず問題の説明から始めましょう:同じページで、1 つのタブに float:left が必要で、もう ...

MySQLのファジークエリのような遅い速度を解決する方法

質問: インデックスは作成されているのに、Like ファジー クエリがまだ遅いのはなぜですか?インデ...

CSS で TikTok テキスト揺れエフェクトを実装する例

日々の開発において、フロントエンドの学生はアニメーションやデザインについてよく議論します。デザイナー...