この記事の例では、登録とログインの効果を実現するための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 で単一のデータベースまたはテーブルを復元する方法と、起こりうる落とし穴
1. MySQLデータベースのエンコーディングを確認する mysql -u ユーザー名 -p パスワ...
1. 単一行オーバーフロー1. 1 行がオーバーフローした場合、超過部分は表示されます...または、...
余計なことは言わないで、コードだけ見てみましょう〜 -- テーブル内のフィールドコメントを表示および...
最近、MySQL を始めとしてデータベースの知識を勉強し始めました。以下では、皆さんの参考になるよう...
teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同...
違い: 1. InnoDB はトランザクションをサポートしていますが、MyISAM はサポートしてい...
今日、仕事中に左結合に関するSQLの問題に遭遇しました。後で解決しましたが、この問題を通じてSQLの...
目次1. ルール 1: Object.Method() 1.1 ケース1 1.2 ケース2 1.3 ...
1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...
Linux ではすべてがファイルなので、Android システム自体は Linux + Java だ...
この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...
この記事では、CSS フロートの特徴を紹介します。皆さんと共有し、自分用のメモとして残したいと思いま...
ElementUIはテーブルリストのページング効果のチュートリアルを実装しています。参考までに。具体...
2次元配列の次元削減配列インスタンスメソッド concat と ES6 スプレッド演算子を使用した次...
1. MySQLソフトウェアをインストールするMySQL 公式 Yum リポジトリ、MySQL バー...