この記事の例では、ログインと登録の効果を実現するための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を使用するアイデアの詳細な説明
効果現在、プロジェクトは2つ(project1、project2)あり、nginxに付属するinde...
目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...
最近、オンライン セキュリティ スキャンにより、MySQL コネクタに脆弱性が見つかりました。確認し...
目次1. プラグイン式を使用する2. プラグイン式でv-cloakを使用してちらつきの問題を解決する...
目次導入:感情のインストール:一般的な CSS コンポーネントを追加します。既存のコンポーネントにス...
目次1. 構造指示モジュールforRoot()を書く3. スタイルの定義ドラッグ時の順序を調整するに...
1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...
自宅のルーターが300Mの帯域幅を80Mに強制的に減らしたため、3205Uソフトルーターを購入しまし...
目次1. 正規表現の作成2. 使用モード2.1 シンプルモードの使用2.2 特殊文字の使用3. 応用...
この記事では、淘宝虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...
ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...
基本的な構文CREATE VIEW ステートメントを使用してビューを作成できます。構文の形式は次のと...
序文403 クロスオリジン エラーが発生しNo 'Access-Control-Allow-...
この記事では、フォームの隠しテキストを表示するためのJavaScriptの具体的なコードを参考までに...
目次MySQL スレーブ ライブラリ Seconds_Behind_Master 遅延の概要1. 遅...