日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

vue實(shí)現(xiàn)登錄攔截

瀏覽:150日期:2023-01-11 09:54:42

本文實(shí)例為大家分享了vue實(shí)現(xiàn)登錄攔截的具體代碼,供大家參考,具體內(nèi)容如下

需求:用戶只有登錄了,用戶名存儲在本地儲存時,才能進(jìn)入首頁,如果本地存儲沒有用戶名,就不能進(jìn)入首頁

1、登錄頁面的實(shí)現(xiàn)

<template> <div class='htmleaf-container'> <div class='demo form-bg'> <div class='container'> <div class='row'> <div class='col-md-offset-3 col-md-6'> <form class='form-horizontal'> <span class='heading'>用戶登錄</span> <div class='form-group'> <input type='text' placeholder='用戶名' v-model='username' @blur='inputUserBlur' @focus='inputFocus'> <i class='fa fa-user'></i> </div> <div class='form-group help'> <input type='password' placeholder='密碼' v-model='psd' @blur='inputPsdBlur'> <i class='fa fa-lock'></i> <a href='http://www.b3g6.com/bcjs/11383.html#' rel='external nofollow' class='fa fa-question-circle'></a> </div> <div class='form-group'> <div class='main-checkbox'> <input type='checkbox' value='None' name='check'/> <label for='checkbox1'></label> </div> <span class='text'>記住我</span> <button type='button' @click='loginBtn'>立刻登錄</button> </div> </form> </div> </div> </div> </div> </div></template>

<style lang='less' scoped>@import ’http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css’; @import ’http://cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css’;@import ’.././assets/login/css/index.css’;.form-bg{ padding: 2em 0; } .form-horizontal{ background: #fff; padding-bottom: 40px; border-radius: 15px; text-align: center; } .form-horizontal .heading{ display: block; font-size: 35px; font-weight: 700; padding: 35px 0; border-bottom: 1px solid #f0f0f0; margin-bottom: 30px; } .form-horizontal .form-group{ padding: 0 40px; margin: 0 0 25px 0; position: relative; } .form-horizontal .form-control{ background: #f0f0f0; border: none; border-radius: 20px; box-shadow: none; padding: 0 20px 0 45px; height: 40px; transition: all 0.3s ease 0s; } .form-horizontal .form-control:focus{ background: #e0e0e0; box-shadow: none; outline: 0 none; } .form-horizontal .form-group i{ position: absolute; top: 12px; left: 60px; font-size: 17px; color: #c8c8c8; transition : all 0.5s ease 0s; } .form-horizontal .form-control:focus + i{ color: #00b4ef; } .form-horizontal .fa-question-circle{ display: inline-block; position: absolute; top: 12px; right: 60px; font-size: 20px; color: #808080; transition: all 0.5s ease 0s; } .form-horizontal .fa-question-circle:hover{ color: #000; } .form-horizontal .main-checkbox{ float: left; width: 20px; height: 20px; background: #11a3fc; border-radius: 50%; position: relative; margin: 5px 0 0 5px; border: 1px solid #11a3fc; } .form-horizontal .main-checkbox label{ width: 20px; height: 20px; position: absolute; top: 0; left: 0; cursor: pointer; } .form-horizontal .main-checkbox label:after{ content: ''; width: 10px; height: 5px; position: absolute; top: 5px; left: 4px; border: 3px solid #fff; border-top: none; border-right: none; background: transparent; opacity: 0; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } .form-horizontal .main-checkbox input[type=checkbox]{ visibility: hidden; } .form-horizontal .main-checkbox input[type=checkbox]:checked + label:after{ opacity: 1; } .form-horizontal .text{ float: left; margin-left: 7px; line-height: 20px; padding-top: 5px; text-transform: capitalize; } .form-horizontal .btn{ float: right; font-size: 14px; color: #fff; background: #00b4ef; border-radius: 30px; padding: 10px 25px; border: none; text-transform: capitalize; transition: all 0.5s ease 0s; } @media only screen and (max-width: 479px){ .form-horizontal .form-group{ padding: 0 25px; } .form-horizontal .form-group i{ left: 45px; } .form-horizontal .btn{ padding: 10px 20px; } }</style>

index.css

/* @font-face { font-family: ’icomoon’; src:url(’../fonts/icomoon.eot?rretjt’); src:url(’../fonts/icomoon.eot?#iefixrretjt’) format(’embedded-opentype’), url(’../fonts/icomoon.woff?rretjt’) format(’woff’), url(’../fonts/icomoon.ttf?rretjt’) format(’truetype’), url(’../fonts/icomoon.svg?rretjt#icomoon’) format(’svg’); font-weight: normal; font-style: normal;} */[class^='icon-'], [class*=' icon-'] { font-family: ’icomoon’; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}body, html { font-size: 100%; padding: 0; margin: 0;}/* Reset */*,*:after,*:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */.clearfix:before,.clearfix:after { content: ' '; display: table;}.clearfix:after { clear: both;}body{ background: #494A5F; font-weight: 500; font-size: 1.05em; font-family: 'Microsoft YaHei','Segoe UI', 'Lucida Grande', Helvetica, Arial,sans-serif;}a{ color: rgba(255, 255, 255, 0.6);outline: none;text-decoration: none;-webkit-transition: 0.2s;transition: 0.2s;}a:hover,a:focus{color:#74777b;text-decoration: none;}.htmleaf-container{ margin: 0 auto;}.bgcolor-1 { background: #f0efee; }.bgcolor-2 { background: #f9f9f9; }.bgcolor-3 { background: #e8e8e8; }/*light grey*/.bgcolor-4 { background: #2f3238; color: #fff; }/*Dark grey*/.bgcolor-5 { background: #df6659; color: #521e18; }/*pink1*/.bgcolor-6 { background: #2fa8ec; }/*sky blue*/.bgcolor-7 { background: #d0d6d6; }/*White tea*/.bgcolor-8 { background: #3d4444; color: #fff; }/*Dark grey2*/.bgcolor-9 { background: #ef3f52; color: #fff;}/*pink2*/.bgcolor-10{ background: #64448f; color: #fff;}/*Violet*/.bgcolor-11{ background: #3755ad; color: #fff;}/*dark blue*/.bgcolor-12{ background: #3498DB; color: #fff;}/*light blue*/.bgcolor-20{ background: #494A5F;color: #D5D6E2;}/* Header */.htmleaf-header{ padding: 1em 190px 1em; letter-spacing: -1px; text-align: center; background: #66677c;}.htmleaf-header h1 { color: #D5D6E2; font-weight: 600; font-size: 2em; line-height: 1; margin-bottom: 0;}.htmleaf-header h1 span { display: block; font-size: 60%; font-weight: 400; padding: 0.8em 0 0.5em 0; color: #c3c8cd;}/*nav*/.htmleaf-demo a{color: #fff;text-decoration: none;}.htmleaf-demo{width: 100%;padding-bottom: 1.2em;}.htmleaf-demo a{display: inline-block;margin: 0.5em;padding: 0.6em 1em;border: 3px solid #fff;font-weight: 700;}.htmleaf-demo a:hover{opacity: 0.6;}.htmleaf-demo a.current{background:#1d7db1;color: #fff; }/* Top Navigation Style */.htmleaf-links { position: relative; display: inline-block; white-space: nowrap; font-size: 1.5em; text-align: center;}.htmleaf-links::after { position: absolute; top: 0; left: 50%; margin-left: -1px; width: 2px; height: 100%; background: #dbdbdb; content: ’’; -webkit-transform: rotate3d(0,0,1,22.5deg); transform: rotate3d(0,0,1,22.5deg);}.htmleaf-icon { display: inline-block; margin: 0.5em; padding: 0em 0; width: 1.5em; text-decoration: none;}.htmleaf-icon span { display: none;}.htmleaf-icon:before { margin: 0 5px; text-transform: none; font-weight: normal; font-style: normal; font-variant: normal; font-family: ’icomoon’; line-height: 1; speak: none; -webkit-font-smoothing: antialiased;}/* footer */.htmleaf-footer{width: 100%;padding-top: 10px;}.htmleaf-small{font-size: 0.8em;}.center{text-align: center;}/****/.related { color: #fff; background: #494A5F; text-align: center; font-size: 1.25em; padding: 0.5em 0; overflow: hidden;}.related > a { vertical-align: top; width: calc(100% - 20px); max-width: 340px; display: inline-block; text-align: center; margin: 20px 10px; padding: 25px; font-family: 'Microsoft YaHei','宋體','Segoe UI', 'Lucida Grande', Helvetica, Arial,sans-serif, FreeSans, Arimo;}.related a { display: inline-block; text-align: left; margin: 20px auto; padding: 10px 20px; opacity: 0.8; -webkit-transition: opacity 0.3s; transition: opacity 0.3s; -webkit-backface-visibility: hidden;}.related a:hover,.related a:active { opacity: 1;}.related a img { max-width: 100%; opacity: 0.8; border-radius: 4px;}.related a:hover img,.related a:active img { opacity: 1;}.related h3{font-family: 'Microsoft YaHei', sans-serif;font-size: 1.2em}.related a h3 { font-size: 0.85em; font-weight: 300; margin-top: 0.15em; color: #fff;}/* icomoon */.icon-htmleaf-home-outline:before { content: 'e5000';}.icon-htmleaf-arrow-forward-outline:before { content: 'e5001';}@media screen and (max-width: 1024px) { .htmleaf-header { padding: 2em 10% 2em; } .htmleaf-header h1 { font-size:1.4em; } .htmleaf-links{font-size: 1.4em}}@media screen and (max-width: 960px) { .htmleaf-header { padding: 2em 10% 2em; } .htmleaf-header h1 { font-size:1.2em; } .htmleaf-links{font-size: 1.2em} .related h3{font-size: 1em;} .related a h3 { font-size: 0.8em; }}@media screen and (max-width: 766px) { .htmleaf-header h1 { font-size:1.3em; } .htmleaf-links{font-size: 1.3em}}@media screen and (max-width: 640px) { .htmleaf-header { padding: 2em 10% 2em; } .htmleaf-header h1 { font-size:1em; } .htmleaf-links{font-size: 1em} .related h3{font-size: 0.8em;} .related a h3 { font-size: 0.6em; }}

vue實(shí)現(xiàn)登錄攔截

首先首頁需要用戶登錄成功,且本地有username的存儲,才能進(jìn)入首頁,那么就要在首頁的路由中配置攔截。

1、首頁路由

{ path: ’/’, name: ’home’, component: Home, meta: { requireAuth: true //配置攔截 }, },

2、登錄頁面路由

{ path: ’/login’, name: ’login’, component: () => import(/* webpackChunkName: 'about' */ ’../views/Login.vue’) }

路由鉤子函數(shù)

router.beforeEach((to,from,next)=>{ if(to.meta.requireAuth){ if(localStorage.getItem(’username’)){ next(); }else{ next({ path:’/login’ }) } }else{ next(); }})

登錄頁面的驗(yàn)證:

<script>export default { name: ’login’, data() { return { username:'', psd:’’, userKey:false, psdKey:false } }, methods: { //用戶名驗(yàn)證 inputUserBlur(){ let filter = /^[a-zA-Z0-9_]{6,16}$/; console.log(’blur’); if(this.username.trim() == ’’){ this.$message.error(’用戶名不能為空’); }else if(!filter.test(this.username)){ this.$message({ message: ’用戶名格式錯誤(6到16位,字母數(shù)字下劃線,減號,中間不能有空格)’, type: ’warning’ }); }else{ this.userKey = true;//用戶名格式正確 } }, //密碼驗(yàn)證 inputPsdBlur(){ let filter = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,20}$/; console.log(’blur’); if(this.psd.trim() == ’’){ this.$message.error(’密碼不能為空’); }else if(!filter.test(this.psd)){ this.$message({ message: ’密碼格式錯誤(密碼包含 數(shù)字,英文,字符中的兩種以上,長度6-20)’, type: ’warning’ }); }else{ this.psdKey = true;//密碼格式正確 } }, //登錄 loginBtn(){ console.log(this.userKey,this.psdKey) if(this.userKey && this.psdKey){ this.$message({ message: ’恭喜你,登錄成功’, type: ’success’ }); localStorage.setItem(’username’,JSON.stringify(this.username)); this.username = ’’; this.psd = ’’; this.$router.push(’/’) }else{ this.$message.error(’用戶名和密碼不能為空’); } } },}</script>

關(guān)于vue.js組件的教程,請大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲自拍另类| 欧美一区成人| 欧美一区不卡| 亚洲日本欧美| 国产精品一卡| 蜜臀久久久久久久| 国产精品多人| 国产精品大片免费观看| 久久中文亚洲字幕| 妖精视频成人观看www| 天使萌一区二区三区免费观看| 香蕉视频亚洲一级| 亚洲激情av| 国产日韩欧美一区二区三区在线观看| 久久久久美女| 国产精品日韩久久久| 亚洲va久久久噜噜噜久久| 久久美女性网| 日韩精品国产欧美| 成人一区而且| 久久国产精品毛片| 激情不卡一区二区三区视频在线| 日韩精品dvd| 国产午夜久久av| 女人天堂亚洲aⅴ在线观看| 久久国产三级精品| 麻豆精品av| 美女精品在线| 夜鲁夜鲁夜鲁视频在线播放| 欧美特黄一级| 久久国产精品色av免费看| 欧美日韩一区二区综合| 日本不卡视频在线观看| 亚洲先锋成人| 亚洲二区免费| 国产91精品对白在线播放| 日韩av三区| 欧美国产美女| 成人黄色av| 亚洲综合电影| 麻豆视频久久| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲国产一区二区在线观看| 国产欧美一区二区精品久久久 | 福利一区在线| 日本va欧美va瓶| 天堂成人国产精品一区| 99在线|亚洲一区二区| 五月婷婷六月综合| 婷婷激情久久| 日韩二区三区在线观看| 成人在线观看免费视频| 一二三区精品| 欧美日韩精品一区二区三区视频| 日韩av中文字幕一区二区| 久久国内精品自在自线400部| 丝袜美腿成人在线| 亚洲精品动态| 超碰在线99| 视频一区中文字幕精品| 亚洲三级国产| 精品一区二区三区中文字幕| 午夜欧美精品| 国产亚洲久久| 亚洲少妇诱惑| 青草国产精品| 久久在线91| 亚洲黑丝一区二区| 欧美日韩亚洲国产精品| 水蜜桃精品av一区二区| 午夜在线精品| 日本精品国产| 亚洲香蕉视频| 国产精品美女午夜爽爽| 亚洲精品国产嫩草在线观看| 国产亚洲欧洲| 国产+成+人+亚洲欧洲在线| 久久久久蜜桃| 国产精品一国产精品| 亚洲香蕉网站| 国产精品一线天粉嫩av| 伊人久久成人| 高清日韩欧美| 久久三级视频| 日韩av不卡在线观看| 中文字幕av亚洲精品一部二部| 超级白嫩亚洲国产第一| 日本欧美在线看| 亚洲欧美久久久| 国精品一区二区三区| 国产国产精品| 国产免费成人| 欧美 日韩 国产精品免费观看| 中文一区一区三区高中清不卡免费| 久久99精品久久久野外观看| 国产传媒在线观看| 亚洲女同一区| 国产免费成人| 久久激情综合网| 日韩精品一二三| 国产精品久久久久av蜜臀| 欧美一级全黄| 麻豆精品少妇| 亚洲免费高清| 国产精品nxnn| 新版的欧美在线视频| 日韩中文字幕视频网| 亚洲在线电影| 午夜久久av | 成人啊v在线| 黑人精品一区| 99久久99视频只有精品 | 欧美国产偷国产精品三区| 日韩电影免费网站| 激情综合激情| 鲁鲁在线中文| 亚洲一区二区三区中文字幕在线观看| 91精品蜜臀一区二区三区在线 | 岛国av免费在线观看| а√天堂8资源在线| 日韩精品中文字幕第1页| 99久久久久国产精品| 在线国产日韩| 国产精品久久久久久久免费观看| 国产亚洲一卡2卡3卡4卡新区| 88xx成人免费观看视频库| 亚洲美女久久精品| 精品网站aaa| 九九精品调教| 亚洲欧美高清| 亚洲免费高清| 视频精品一区二区| 麻豆精品网站| 欧美日韩精品免费观看视频完整| 久久久久蜜桃| 国产伦精品一区二区三区视频| 国产精品一区二区中文字幕| 国产乱人伦丫前精品视频 | 国内自拍视频一区二区三区| 另类亚洲自拍| 国产精选一区| 免费观看日韩电影| 日韩av资源网| 夜久久久久久| 国产一区二区三区四区大秀| 国产高潮在线| 亚洲另类av| 蜜臀a∨国产成人精品| 国产精品资源| 中文字幕成在线观看| 激情久久五月| 乱一区二区av| 美女精品在线| 日韩一区二区在线免费| 亚洲不卡视频| 久久婷婷久久| 日韩中文在线播放| 日韩视频一二区| 欧美成人基地| 日韩精品国产欧美| 午夜宅男久久久| 亚洲婷婷免费| 日本h片久久| 日韩精品一区第一页| 国产一区视频在线观看免费| 国产精品一区亚洲| 亚洲青青久久| 中文字幕亚洲精品乱码| 日韩视频不卡| 亚洲手机视频| а√天堂8资源中文在线| 国产人成精品一区二区三| 国产视频网站一区二区三区| 日韩精品dvd| 国产精品白丝久久av网站| 久久久精品区| 久久精品人人| 美女网站一区| 国产成人精品亚洲日本在线观看| 久久婷婷久久| 欧美国产视频| 97精品国产99久久久久久免费| 五月婷婷六月综合| 欧美日韩水蜜桃| 久久久久久色| 国产在线观看91一区二区三区| 日韩精品欧美精品| 少妇高潮一区二区三区99| 日韩精品亚洲专区在线观看| 欧美亚洲免费| а√在线中文在线新版| 香蕉久久国产| 日本不良网站在线观看| 国产农村妇女精品一二区| 国产亚洲第一伦理第一区| 韩日一区二区三区| 欧美激情亚洲| 亚洲tv在线| 国产婷婷精品| 日韩伦理一区|