這次帶給大家怎麼進行vue.js登入控制,vue.js實作登入控制的注意事項有哪些,下面就是實戰案例,一起來看一下。
vue中使用vue-router實現登入的控制在做後台管理系統中很常見,但是不想之前熟悉的流程那樣,不過只要大家理解vue-router的使用也是很好實現的。
首先我們需要寫登入頁面和主頁面:
<template> <p> </p> <table> <tr><td> </td></tr> <tr> <td> <table> <tr><td> </td></tr> <tr> <td> </td> <td> <table> <tr><td></td></tr> <tr> <td> <img src="/static/imghwm/default1.png" data-src="../../static/images/logo.png" class="lazy" alt="怎樣進行vue.js登入控制" > /> </td> </tr> </table> </td> <td> </td> </tr> <tr><td> </td></tr> </table> </td> <td> <table> <tr><td> </td></tr> <tr> <td> </td> <td> <table> <tr><td><h4>管理后台</h4></td></tr> <tr> <td>管理员:</td> <td><input></td> </tr> <tr> <td>密 码:</td> <td><input></td> </tr> <!-- <tr><td>验证码:</td><td><input type="text" name="" value="" style="width:80px;"/></td></tr> --> <tr> <td> <input> </td> <td> </td> </tr> </table> </td> <td> </td> </tr> <tr><td> </td></tr> </table> </td> </tr> <tr><td><p>Copyright © 2017-{{getNowDate()}} Tujiawang</p></td></tr> </table> </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
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是怎樣進行vue.js登入控制的詳細內容。更多資訊請關注PHP中文網其他相關文章!