この記事の例では、ログインと登録の効果を実現するためのvueプロジェクトの具体的なコードを共有しています。具体的な内容は次のとおりです。 メインコンテンツこの章の目標: vue+element-ui が登録とログインを完了する 1. エフェクト表示 2. ページの表示:ビュー 登録ページ効果実現: <テンプレート> <div class="ログインセクション"> <!-- :rules="ルール" --> <el-form label-position="top" label-width="100px" class="demo-ruleForm" :rules="rules" :model="rulesForm" status-icon ref='ruleForm'> <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} をインポートします。 エクスポートデフォルト{ データ() { 戻る { ルールフォーム:{ 名前:''、 パスワード:'' }, ルール: 名前:[ {required:true,message:'名前が書かれていません',trigger:'blur'}, {min:1,max:5,message:'長さは 3 文字から 5 文字です'} ]、 パスワード:[ {required:true,message:'名前が書かれていません',trigger:'blur'}, {min:3,max:5,message:'長さは 3 文字から 5 文字です'} ] } }; }, メソッド: { 送信フォーム(フォーム名){ this.$refs[フォーム名].validate((valid)=>{ if(valid){//チェックに合格したら、ユーザー名とパスワードをバックエンドのログインに送信します({ 名前:this.rulesForm.name、 パスワード:this.rulesForm.password }).then((データ)=>{ コンソール.log(データ) if(データコード===0){ localStorage.setItem('トークン',data.data.token) ウィンドウの場所.href='/' } if(データコード===1){ this.$message.error(データ.メッセージ) } }) }それ以外{ console.log('送信エラー!!'); false を返します。 } }) } } } </スクリプト> <style lang="スタイラス"> .ログインセクション パディング 0px 20px </スタイル> ログイン.vue <テンプレート> <div class="ログインセクション"> <el-form label-position="top" label-width="100px" class="demo-ruleForm" :rules="rules" :model="rulesForm" status-icon ref='ruleForm'> <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} をインポートします。 エクスポートデフォルト{ データ() { 戻る { ルールフォーム:{ 名前:''、 パスワード:'' }, ルール: 名前:[ {required:true,message:'名前が書かれていません',trigger:'blur'}, {min:1,max:5,message:'長さは 3 文字から 5 文字です'} ]、 パスワード:[ {required:true,message:'名前が書かれていません',trigger:'blur'}, {min:3,max:5,message:'長さは 3 文字から 5 文字です'} ] } }; }, メソッド: { 送信フォーム(フォーム名){ this.$refs[フォーム名].validate((valid)=>{ if(valid){//チェックに合格したら、ユーザー名とパスワードをバックエンドのログインに送信します({ 名前:this.rulesForm.name、 パスワード:this.rulesForm.password }).then((データ)=>{ コンソール.log(データ) if(データコード===0){ localStorage.setItem('トークン',data.data.token) ウィンドウの場所.href='/' } if(データコード===1){ this.$message.error(データ.メッセージ) } }) }それ以外{ console.log('送信エラー!!'); false を返します。 } }) } } } </スクリプト> <style lang="スタイラス"> .ログインセクション パディング 0px 20px </スタイル> ルーティング: index.js 'vue' から Vue をインポートします 'vue-router' から Router をインポートします。 Vue.use(ルーター) '@/store' からストアをインポートします '@/service/api.js' から {userInfo} をインポートします。 '@/views/home/Home.vue' から Home をインポートします。 '@/views/user-login/index.vue' からログインをインポートします。 const router = 新しいルーター({ モード:"履歴", ルート:[ { パス:'/'、 名前:"ホーム", タイトル:"ホーム", コンポーネント:ホーム }, { パス:'/login', 名前:"ログイン", タイトル:"ログインページ", コンポーネント:ログイン、 メタ:{ ログイン:true } } ] }); router.beforeEach( 非同期 (to,from,next) => { const トークン = localStorage.getItem('トークン'); const isLogin = !!トークン; //ルートに入るときは、それが正当かどうかを確認するためにバックエンドにトークンを送信する必要があります。const data = await userInfo(); Store.commit('chageUserInfo',data.data) if(to.matched.some(item => item.meta.login)){//ログインが必要です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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Linuxでmysqlの定期的なコールドバックアップを実装するためにmysqldump+expect+crontabを使用するアイデアの詳細な説明
/***************** * proc ファイルシステム***************...
1. プリコンパイルの利点私たちは皆、プリコンパイル機能を備えた JDBC の PreparedSt...
今日も私のページが文字化けしていたので、インターネットで関連する問題を検索しました。この方法はかなり...
リンク: https://qydev.weixin.qq.com/wiki/index.php?ti...
目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...
MySql ダウンロード1. 公式サイトを開き、ダウンロード パスを見つけます。ダウンロード アドレ...
このブログは、MySQL8.0.15 を正常にインストールしたことを思い出すために書きました。以前は...
MySQLマスタースレーブを設定した後、スレーブの状態が正常かどうかわからないことが多く、例外が発生...
この記事の例では、ドロップダウンリストを実装するためのJavaScriptの具体的なコードを参考まで...
車輪の再発明として、ここでは再パッケージ化を使用して Docker ベースの Hadoop イメージ...
Vue プロジェクトで div ホイールのズームインとズームアウト、ドラッグ効果、キャンバス効果に似...
序文プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。こ...
目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...
この記事では、MySQL 5.7.18アーカイブ圧縮版をインストールする具体的な方法を参考までに紹介...
目次序文型推論真理値の絞り込み平等の縮小演算子の絞り込みインスタンスの絞り込み狭まりの本質ユニオン型...