この記事の例では、登録とログインの効果を実現するための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. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...
効果: コード: <テンプレート> <div class="back-t...
いつインストールするかprotoc コマンドを使用しても Protoc が見つからない場合は、インス...
nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...
序文:最近、プロジェクトで管理システムに遭遇しました。権限設定が非常に興味深いと思いました。自分の学...
通常、コンポーネントのライフサイクルは、ビジネス ロジックが始まる場所です。ビジネスシナリオが複雑で...
最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...
まず第一に、この効果は古い話題であるはずだということはわかっています。今日ファイルを整理していたら、...
目次1. 概要2. 名前フィールド3. バージョンフィールド4. 説明フィールド5. キーワードフィ...
序文私のチームが税制モジュールを開発していたとき、計算問題、特にグリッド内の計算を解決するために時間...
まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...
目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...
目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...