この記事の例では、登録とログインの効果を実現するためのVUEの具体的なコードを紹介します。具体的な内容は次のとおりです。 1. エフェクト表示2. 登録効果の実現<テンプレート> <div class="ログインセクション"> <el-フォーム ラベル位置="上" ラベル幅="100px" クラス="demo-ruleForm" :rules="ルール" :model="ルールフォーム" ステータスアイコン ref="ルールフォーム" > <el-form-item label="ユーザー名" prop="名前"> <el-input type="text" v-model="rulesForm.name"></el-input> </el-form-item> <el-form-item label="パスワード" prop="パスワード"> <el-input type="password" v-model="rulesForm.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')" >送信</el-button> <el-button >リセット</el-button> </el-form-item> </el-form> </div> </テンプレート> <スクリプト> '@/service/api' から {register} をインポートします。 エクスポートデフォルト{ データ() { 戻る { ルールフォーム:{ 名前:''、 パスワード:'' }, ルール: 名前:[ {required:true,message:'名前を入力してください',trigger:"blur"}, {最小:1、最大:5、メッセージ:"長さ 3-5"、トリガー:"ぼかし"} ]、 パスワード:[ {required:true,message:'パスワードを入力してください',trigger:"blur"}, {最小:3、最大:5、メッセージ:"長さ 3-5"、トリガー:"ぼかし"} ] } }; }, メソッド: { 送信フォーム(フォーム名){ this.$refs[フォーム名].validate((valid)=>{ if(有効){ //チェックに合格したら、ユーザー名とパスワードをバックエンドに送信します。register({ 名前: this.rulesForm.name, パスワード: this.rulesForm.password, }).then((データ)=>{ コンソール.log(データ) if(データコード === 0){ localStorage.setItem('token',data.data.token); window.location.href='/'; } if(データコード === 1){ this.$message.error(データ.メッセージ) } }); }それ以外{ console.log("送信エラー!!"); false を返します。 } }); } } } </スクリプト> <style lang="スタイラス"> .ログインセクション パディング 0px 20px </スタイル> 3. ログインページの実装<テンプレート> <div class="ログインセクション"> <el-フォーム ラベル位置="上" ラベル幅="100px" クラス="demo-ruleForm" :rules="ルール" :model="ルールフォーム" ステータスアイコン ref="ルールフォーム" > <el-form-item label="ユーザー名" prop="名前"> <el-input type="text" v-model="rulesForm.name"></el-input> </el-form-item> <el-form-item label="パスワード" prop="パスワード"> <el-input type="password" v-model="rulesForm.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">送信</el-button> <el-button>リセット</el-button> </el-form-item> </el-form> </div> </テンプレート> <スクリプト> '@/service/api' から {login} をインポートします。 エクスポートデフォルト{ データ() { 戻る { //データを格納するオブジェクトrulesForm:{ 名前:''、 パスワード:'' }, ルール: 名前:[ {required:true,message:'名前を入力してください',trigger:"blur"}, {最小:1、最大:5、メッセージ:"長さ 3-5"、トリガー:"ぼかし"} ]、 パスワード:[ {required:true,message:'パスワードを入力してください',trigger:"blur"}, {最小:3、最大:5、メッセージ:"長さ 3-5"、トリガー:"ぼかし"} ] } }; }, メソッド: { 送信フォーム(フォーム名){ this.$refs[フォーム名].validate((valid)=>{ if(有効){ //チェックに合格したら、ユーザー名とパスワードをバックエンドに送信します login({ 名前: this.rulesForm.name, パスワード: this.rulesForm.password, }).then((データ)=>{ コンソール.log(データ) if(データコード === 0){ localStorage.setItem('token',data.data.token); window.location.href='/'; } if(データコード === 1){ this.$message.error(データ.メッセージ) } }); }それ以外{ console.log("送信エラー!!"); false を返します。 } }); } } } </スクリプト> <style lang="スタイラス"> .ログインセクション パディング 0px 20px </スタイル> 4. ルーティングジャンプの実装'vue' から Vue をインポートします 'vue-router' から Router をインポートします。 Vue.use(ルーター) '@/store' からストアをインポートします '@/service/api.js' から {userInfo} をインポートします。 '@/views/user-login/index.vue' からログインをインポートします。 const router = 新しいルーター({ モード:"履歴", ルート:[ { パス:'/login', 名前:"ログイン", タイトル:"ログインページ", コンポーネント:ログイン、 メタ:{ ログイン:true } } ] }); //ルートガード router.beforeEach( async (to,from,next) => { /* 一部のルートではログインが必要です。ログイン状態を判定するには 1. ログインしていません: ログインページにジャンプします 2. ログイン: 直接入力します 一部のルートではログインは必要ありません。直接入力します ps: ログインするかどうか --meta */ const トークン = localStorage.getItem('トークン'); const isLogin = !!トークン; //ルートに入るときは、それが正当かどうかを確認するためにバックエンドにトークンを送信する必要があります。const data = await userInfo(); Store.commit('chageUserInfo',data.data) if(to.matched.some(item => item.meta.login)){//ログインが必要ですconsole.log("ログインが必要です"); if(isLogin){//すでにログインしている場合は直接渡します。if(data.error === 400){//バックエンドはログインに失敗したことを通知します。next({name:'login'}); localStorage.removeItem('トークン'); 戻る; } if(to.name === 'ログイン'){ 次へ({name:'home'}); }それ以外{ 次(); } 戻る; } if(!isLogin && to.name === 'login'){//ログインしていませんが、ログインページに移動します next(); } if(!isLogin && to.name !== 'login'){//ログインしていない、ログインページではない next({name:'login'}); } }それ以外{ 次(); } }) デフォルトルーターをエクスポートします。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: JavaScriptはシンプルな計算機能を実装します
>>: MySQL で単一のデータベースまたはテーブルを復元する方法と、起こりうる落とし穴
DockerでGit環境を構成する仕事上、Docker 環境で GitLab リポジトリを操作する必...
最も単純な hello world 出力イメージを作成することは最も簡単なスタートですが、実行中のコ...
主に使用される知識ポイント: •css3 3D変換 •ネイティブjsマウスドラッグイベント•表示:グ...
主キーを作成するには 2 つの方法があります。 テーブルテーブル名を作成( フィールド名タイプ、 フ...
導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...
Win2008 R2 zip形式のMySQLのインストールと設定1. Baidu MySQL 5.6...
管理者権限でcmdを実行する slmgr /ipk CB7KF-BWN84-R7R2Y-793K2-...
重要なイベントまであと何日あるか知りたいですか? Linux bash と date コマンドが役に...
1. Linuxのインストール(rootユーザー操作) 1. vncserver をインストールしま...
目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...
デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...
1. 基本コンポーネントをインストールするまず、 yumコマンドを実行して、コードpullために必要...
事前に書いておきます:次の手順では、ターミナルにコマンドを入力する必要があります。コンピューターでブ...
1. インデックスの役割一般的に言えば、インデックスは本の目次に相当します。条件に基づいてクエリを実...
MySQL 5.7.19 winx64 解凍版のインストールチュートリアルを収録しています。具体的な...