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で重複データを削除する詳細な例

推薦する

MyISAMとInnoDBの違いについてお話しましょう

主な違いは次のとおりです。 1. MySQL はデフォルトで MyISAM を使用します。 2. M...

HTML チュートリアル: 順序なしリスト

<br />原文: http://andymao.com/andy/post/102.h...

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...

HTML ページ ヘッダー コード例の詳細な説明

知識ポイント1: ヘッダー情報にWebページのベースURLを設定するベース URL の本質は、ハイパ...

MySQL を使用した分散ロックの実装

導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...

JavaScriptは入力ボックスコンポーネントを実装します

この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。...

JS におけるメモリと変数の保存についての詳細な説明

目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...

Vue+tsx のスロット使用の問題が置き換えられない

目次序文問題を見つける解決する追記序文最近、 UIコンポーネントを作成する予定で、 vue 2.xと...

MySQL EXPLAIN ステートメントの使用例

目次1. 使用方法2. 出力結果1.id 2.選択タイプ3.表4.パーティション5.タイプ6.可能な...

よく知られているブラウザのDOCTYPEモード選択メカニズム

ドキュメントの範囲この記事では、Firefox やその他の Gecko ベースのブラウザ、Safar...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

Ubuntu での mysql のインストールと使用 (一般版)

Ubuntu のバージョンに関係なく、MySQL データベースのインストールは基本的に同じです。具...

HTML知識ポイントの実践経験のまとめ

1. 表タグはtable、trは行、tdはセル、cellspacingはセル間の距離、cellpad...

Chromeブラウザ設定の新バージョンではクロスドメイン実装が可能

序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...

vue3 カスタムディレクティブの詳細

目次1. カスタム指示の登録1.1. グローバルカスタム指示1.2. ローカルカスタム指示2. カス...