国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue.js中實現登錄控制的方法示例

2019-11-19 13:58:13
字體:
來源:轉載
供稿:網友

本文實例講述了vue.js中實現登錄控制的方法。分享給大家供大家參考,具體如下:

vue中使用vue-router實現登錄的控制在做后臺管理系統中很常見,但是不想之前熟悉的流程那樣,不過只要大家理解vue-router的使用也是很好實現的。

首先我們需要編寫登錄頁面和主頁面:

<template> <div class="login">  <table width="100%" height="100%">   <tr height="41"><td class="logintb" colspan="2"> </td></tr>   <tr height="100%" class="loginbg">    <td id="left_cont">     <table width="100%" height="100%">      <tr height="155"><td colspan="2"> </td></tr>      <tr>       <td width="20%" rowspan="2"> </td>       <td width="60%">        <table width="100%">          <tr height="70"><td align="right"></td></tr>          <tr height="274">            <td valign="top" align="right">              <img src="../../static/images/logo.png"/>             </img/>            </td>          </tr>        </table>       </td>       <td width="15%" rowspan="2"> </td>      </tr>      <tr><td colspan="2"> </td></tr>     </table>    </td>    <td id="right_cont">     <table height="100%">      <tr height="30%"><td colspan="3"> </td></tr>      <tr>       <td width="30%" rowspan="5"> </td>       <td valign="top" id="form">          <table valign="top" width="50%">            <tr><td colspan="2"><h4 style="letter-spacing:1px;font-size:16px;">管理后臺</h4></td></tr>            <tr><td>管理員:</td><td><input type="text" v-model.trim="username" value="" /></td></tr>            <tr><td>密  碼:</td><td><input type="password" v-model.trim="pwd" value="" /></td></tr>            <!-- <tr><td>驗證碼:</td><td><input type="text" name="" value="" style="width:80px;"/></td></tr> -->            <tr class="bt" align="center"><td> <input type="submit" @click="login" value="登陸" /></td><td> </td></tr>          </table>       </td>       <td rowspan="5"> </td>      </tr>      <tr><td colspan="3"> </td></tr>     </table>    </td>   </tr>   <tr id="login_bot"><td colspan="2"><p>Copyright © 2017-{{getNowDate()}} Tujiawang</p></td></tr>  </table> </div></template><script> import axios from 'axios' axios.defaults.withCredentials = true export default{  data(){   return {    username:'',    pwd:''   }  },  methods: {   login() {    var params = new URLSearchParams();    params.append('username', this.username);    params.append('password', this.pwd);    axios.post(this.HOST+'/home/system/login',params).then(res => {      if(res.data.code ==1){       sessionStorage.username = this.username;       this.$router.push({path:'/main'})      }else{       alert('登錄失敗')      }    })   },   getNowDate(){    var d = new Date();    return d.getFullYear();   }  } }</script>

上面的登錄頁面注意:login方法中登錄成功需要寫入sessionStorage以便路由進行判斷

最主要的是路由文件中的內容:

import Vue from 'vue'import Router from 'vue-router'Vue.use(Router)const routes = [  {    path: '/',    redirect: '/login'  },  {    path: '/login',    name: 'login',    component: (resolve)=>{require(['../components/Login'],resolve)}  },  {    path: '/main',    name: 'main',    component: (resolve)=>{require(['../components/Home'],resolve)},    redirect: 'main/info',    children: [{        path: 'info',        meta: {          id:-1        },        component: (resolve)=>{require(['../components/Main'],resolve)}      }    ]  },  {    path: '/vips',    name: 'vips',    component: (resolve)=>{require(['../components/Home'],resolve)},    redirect: 'vips/list',    children: [{        path: 'list',        meta: {          id:0        },        component: (resolve)=>{require(['../components/VipsList'],resolve)}      },      {        path: 'detail',        meta: {          id:0        },        component: (resolve)=>{require(['../components/VipsDetail'],resolve)}      },      {        path: 'userlog',        meta: {          id:0        },        component: (resolve)=>{require(['../components/UserLog'],resolve)}      }    ]  }];const router = new Router({  routes});/** * to:表示目標路由 * from:表示來源路由 * next:表示執行下一步操作 */router.beforeEach((to, from, next) => {  if (to.path === '/login') { // 當路由為login時就直接下一步操作    next();  } else { // 否則就需要判斷    if(sessionStorage.username){ // 如果有用戶名就進行下一步操作     next()    }else{     next({path: '/login'}) // 沒有用戶名就跳轉到login頁面    }  }})export default router

目前這個只是簡單的處理,這種方法官方叫做路由守衛,還有一種寫法就是在meta中添加是否需要登錄的控制,在beforeEach中來判斷,和上面方法一樣的。

希望本文所述對大家vue.js程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梅河口市| 界首市| 哈密市| 扎鲁特旗| 凭祥市| 辽阳市| 三明市| 黎川县| 监利县| 光泽县| 无棣县| 买车| 屏山县| 黔西县| 城固县| 那坡县| 定远县| 西安市| 饶平县| 淳安县| 元朗区| 咸宁市| 沁源县| 泸溪县| 津南区| 开封市| 会宁县| 长泰县| 龙门县| 山丹县| 观塘区| 交口县| 瑞昌市| 弋阳县| 讷河市| 格尔木市| 西盟| 合阳县| 凭祥市| 买车| 栖霞市|