欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年04月23日 12:10:09   作者:土家稀哥  
這篇文章主要介紹了vue.js中實現登錄控制的方法,結合實例形式分析 vue.js操作登陸頁面流程控制相關實現技巧,需要的朋友可以參考下

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

vue中使用vue-router實現登錄的控制在做后臺管理系統(tǒng)中很常見,但是不想之前熟悉的流程那樣,不過只要大家理解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:表示執(zhí)行下一步操作
 */
router.beforeEach((to, from, next) => {
  if (to.path === '/login') { // 當路由為login時就直接下一步操作
    next();
  } else { // 否則就需要判斷
    if(sessionStorage.username){ // 如果有用戶名就進行下一步操作
     next()
    }else{
     next({path: '/login'}) // 沒有用戶名就跳轉到login頁面
    }
  }
})
export default router

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

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

相關文章

  • vue?element-plus圖片預覽實現方法

    vue?element-plus圖片預覽實現方法

    這篇文章主要給大家介紹了關于vue?element-plus圖片預覽實現的相關資料,最近的項目中有圖片預覽的場景,也是踩了一些坑,在這里總結一下,需要的朋友可以參考下
    2023-07-07
  • Vue實戰(zhàn)教程之仿肯德基宅急送App

    Vue實戰(zhàn)教程之仿肯德基宅急送App

    這篇文章主要介紹了Vue實戰(zhàn)教程之仿肯德基宅急送App,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Vue2.0生命周期的理解

    Vue2.0生命周期的理解

    這篇文章主要為大家介紹了Vue2.0生命周期,思考與理解“el被新創(chuàng)建的vm.$el替換”這句話,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Vue中調用組件使用kebab-case短橫線命名法和使用大駝峰的區(qū)別詳解

    Vue中調用組件使用kebab-case短橫線命名法和使用大駝峰的區(qū)別詳解

    這篇文章主要介紹了Vue中調用組件使用kebab-case(短橫線)命名法和使用大駝峰的區(qū)別,通過實例可以看出如果是在html中使用組件,那么就不能用大駝峰式寫法,如果是在.vue?文件中就可以,需要的朋友可以參考下
    2023-10-10
  • 一文詳解Vue-組件自定義事件(綁定和解綁)

    一文詳解Vue-組件自定義事件(綁定和解綁)

    這篇文章主要介紹了Vue-組件自定義事件的綁定和解綁,文中有詳細的圖文實例,對學習或工作有一定的參考價值,需要的小伙伴可以閱讀下
    2023-05-05
  • Vue-admin-template?添加、跳轉子頁面問題

    Vue-admin-template?添加、跳轉子頁面問題

    這篇文章主要介紹了Vue-admin-template?添加、跳轉子頁面問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 在vue路由上添加公共的路由前綴方式

    在vue路由上添加公共的路由前綴方式

    這篇文章主要介紹了在vue路由上添加公共的路由前綴方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue 組件注冊實例詳解

    Vue 組件注冊實例詳解

    這篇文章主要介紹了Vue 組件注冊,結合實例形式較為詳細的分析了vue.js組件的常見分類、注冊方法及相關操作注意事項,需要的朋友可以參考下
    2019-02-02
  • Vue3中Pinia的基本使用筆記

    Vue3中Pinia的基本使用筆記

    Pinia是一個全新的Vue狀態(tài)管理庫,是Vuex的代替者,尤雨溪強勢推薦,下面這篇文章主要給大家介紹了關于Vue3中Pinia的基本使用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • vue3?emits事件使用示例詳解

    vue3?emits事件使用示例詳解

    這篇文章主要為大家介紹了vue3?emits事件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07

最新評論