テンプレート 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、検証: validator: 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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Dockerはbusyboxを使用してベースイメージを作成します
主な違いは次のとおりです。 1. MySQL はデフォルトで MyISAM を使用します。 2. M...
<br />原文: http://andymao.com/andy/post/102.h...
必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...
知識ポイント1: ヘッダー情報にWebページのベースURLを設定するベース URL の本質は、ハイパ...
導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...
この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。...
目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...
目次序文問題を見つける解決する追記序文最近、 UIコンポーネントを作成する予定で、 vue 2.xと...
目次1. 使用方法2. 出力結果1.id 2.選択タイプ3.表4.パーティション5.タイプ6.可能な...
ドキュメントの範囲この記事では、Firefox やその他の Gecko ベースのブラウザ、Safar...
目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...
Ubuntu のバージョンに関係なく、MySQL データベースのインストールは基本的に同じです。具...
1. 表タグはtable、trは行、tdはセル、cellspacingはセル間の距離、cellpad...
序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...
目次1. カスタム指示の登録1.1. グローバルカスタム指示1.2. ローカルカスタム指示2. カス...