この記事の例では、登録とログインの効果を実現するための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 で単一のデータベースまたはテーブルを復元する方法と、起こりうる落とし穴
この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...
MySQL ページング クエリは通常、制限を通じて実装されます。 limit は 1 つまたは 2 ...
Vue プロジェクトを開発する場合、さまざまなコンポーネント ページを表示するために切り替えることが...
目次1. 基本概念2. データベース管理技術の開発3. リレーショナルデータベース(RDBMS)の概...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1...
Jsでのこれの深い理解JavaScriptスコープはstatic scopeスコープですが、 Jsの...
また、多くの場合、メンテナンスのために Web サイトを少なくとも数分間オフラインにする必要がありま...
困難SVG グラフィックの 2 つのマスクの作成まず、コード左側のピンク色のボックスの内容ですこれに...
目次1. オペレーティングシステムとは何か2. Linuxの起源3. Linuxの基本機能4. Li...
複数列のインデックスについては、理解が不足していることがよくあります。よくある間違いは、多数の列に独...
解決親要素に position:relative を追加します。子要素に position:abso...
Less is More は多くのデザイナーのキャッチフレーズです。これは建築界の巨匠ルートヴィヒ...
yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...
序文この記事では主にMySQLのメモリ使用量に関する関連コンテンツを紹介し、皆さんの参考と学習のため...
この記事では、WeChatアプレットで写真を撮ったり、アルバムから写真を選択したりするための具体的な...