我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue如何实现登陆跳转

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue如何实现登陆跳转

这篇文章主要讲解了“Vue如何实现登陆跳转”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现登陆跳转”吧!

效果图

Vue如何实现登陆跳转

Vue如何实现登陆跳转

Vue如何实现登陆跳转

Vue如何实现登陆跳转

Vue如何实现登陆跳转

具体的实现方法,参照以下步骤~

1.创建login.vue,绘制login画面,添加跳转事件。

<template>
    <div>
        <el-form :model="ruleForm2" :rules="rules2"
         status-icon
         ref="ruleForm2" 
         label-position="left" 
         label-width="0px" 
         class="demo-ruleForm login-page">
            <h3>登录平台</h3>
            <el-form-item prop="username">
                <el-input type="text" 
                    v-model="ruleForm2.username" 
                    auto-complete="off" 
                    placeholder="用户名"></el-input>
            </el-form-item>
            <el-form-item prop="password">
                <el-input type="password" 
                    v-model="ruleForm2.password" 
                    auto-complete="off" 
                    placeholder="密码"></el-input>
            </el-form-item>
            <el-form-item style="width:100%;">
                <el-button type="primary" style="width:100%;" @click="handleSubmit" :loading="logining">登录</el-button>
            </el-form-item>
            <el-form-item >
                <el-checkbox 
                    v-model="checked"
>记住密码</el-checkbox>
                <el-button type="text" @click="forgetpassword">忘记密码</el-button>
            </el-form-item>
            
        </el-form>
    </div>

</template>

<script>
  import { requestLogin } from "../api/api";
  export default {
    data() {
      return {
        logining: false,
        ruleForm2: {
        },
        rules2: {
          account: [
            { required: true, message: "请输入账号", trigger: "blur" },
          ],
          checkPass: [
            { required: true, message: "请输入密码", trigger: "blur" },
          ]
        },
        checked: true
      };
    },
    methods: {
      handleReset2() {
        this.$refs.ruleForm2.resetFields();
      },
      handleSubmit(ev) {
        this.$refs.ruleForm2.validate((valid) => {
          if (valid) {
            this.logining = true;
            var loginParams = { username: this.ruleForm2.username, password: this.ruleForm2.password, identifycode: this.ruleForm2.identifycode };
            requestLogin(loginParams).then(data => {
              this.logining = false;
              let { msg, code, user } = data;
              if (code !== 200) {
                this.$message({
                  message: msg,
                  type: "error"
                });
              } else {
                if (user.type === "admin"){
                    sessionStorage.setItem("user", JSON.stringify(user));
                    this.$router.push({ path: "/homepage" });
                } else if (user.type === "advert") {
                    sessionStorage.setItem("user", JSON.stringify(user));
                    this.$router.push({ path: "/table" });
                }
              }
            });
          } else {
            console.log("error submit!!");
            return false;
          }
        });
      },
      forgetpassword(){
          this.$alert("请联系管理员找回密码,管理员电话:131xxxxxxxx", "提示", {
          confirmButtonText: "确定",
          type: "warning"
        })
      }
    }
  }
</script>

<style scoped>
    label.el-checkbox.rememberme {
        margin: 0px 0px 15px;
        text-align: left;
    }
    label.el-button.forget {
        margin: 0;
        padding: 0;
        border: 1px solid transparent;
        outline: none;
    }
</style>

2.创建Home.vue菜单栏页面

<template>
    <el-row>
        <el-col :span="24">
   <el-col :span="18" >
                {{sysName}}
   </el-col>
   <el-col :span="4">
    <el-dropdown trigger="hover">
     <span class="el-dropdown-link userinfo-inner"><img :class="lazy" data-src="this.sysUserAvatar" /> {{sysUserName}}</span>
     <el-dropdown-menu slot="dropdown">
      <el-dropdown-item>我的消息</el-dropdown-item>
      <el-dropdown-item>设置</el-dropdown-item>
      <el-dropdown-item @click.native="logout">退出登录</el-dropdown-item>
     </el-dropdown-menu>
    </el-dropdown>
   </el-col>
  </el-col>
        <el-col :span="24">
            <aside>
                <el-menu :default-active="$route.path" class="el-menu el-menu-vertical-demo" @select="handleselect"
                        unique-opened router >
                        <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
      <el-submenu :index="index+""" v-if="!item.leaf">
       <template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>
       <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">{{child.name}}</el-menu-item>
      </el-submenu>
      <el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i :class="item.iconCls"></i>{{item.children[0].name}}</el-menu-item>
     </template>
                </el-menu>
            </aside>
   <section>
    <div class="grid-content bg-purple-light">
     <el-col :span="24">
      <strong>{{$route.name}}</strong>
     </el-col>
     <el-col :span="24">
      <transition name="fade" mode="out-in">
       <router-view></router-view>
      </transition>
     </el-col>
    </div>
   </section>
  </el-col>
    </el-row>
</template>

<script>
export default {
    data() {
   return {
    sysName:"xxx管理平台",
    sysUserName: "",
    sysUserAvatar: "",
    form: {
     name: "",
     region: "",
     date1: "",
     date2: "",
     delivery: false,
     type: [],
     resource: "",
     desc: ""
    }
   }
        },
    methods: {
   //退出登录
   logout: function () {
    var _this = this;
    this.$confirm("确认退出吗?", "提示", {
     //type: "warning"
    }).then(() => {
     sessionStorage.removeItem("user");
     _this.$router.push("/login");
    }).catch(() => {

    });
   }
  },
    mounted() {
   var user = sessionStorage.getItem("user");
   if (user) {
    user = JSON.parse(user);
    this.sysUserName = user.name || "";
    this.sysUserAvatar = user.avatar || "";
   }

  }
}
</script>

<style scoped>
@import "../style/vars.scss";

    .container {
  position: absolute;
  top: 0px;
  bottom: 0px;
  width: 100%;
    }
    .header {
   height: 60px;
            line-height: 60px;
   background: $color-primary;
   color:#fff;
   .userinfo {
    text-align: right;
    padding-right: 35px;
    float: right;
    .userinfo-inner {
     cursor: pointer;
     color:#fff;
     img {
      width: 40px;
      height: 40px;
      border-radius: 20px;
      margin: 10px 0px 10px 10px;
      float: right;
     }
    }
   }
   .logo {
    height:60px;
    font-size: 22px;
    padding-left:20px;
    img {
     width: 40px;
     float: left;
     margin: 10px 10px 10px 0px;
    }
    .txt {
                    color:#fff;
    }
   }
   .logo-width{
    width:230px;
   }
   .logo-collapse-width{
    width:60px
   }
   .title{
                font-size: 22px;
    padding-left:20px;
    line-height: 60px;
    color:#fff;
   }
        }
    .main {
   display: flex;
   position: absolute;
   top: 60px;
   bottom: 0px;
   overflow: hidden;
   aside {
    flex:0 0 230px;
    width: 230px;
    .el-menu{
                    height: 100%;
                    
    }
   }
   .content-container {
    flex:1;
    
    padding: 20px;
    .breadcrumb-container {
     .title {
      width: 200px;
      float: left;
      color: #475669;
     }
     .breadcrumb-inner {
      float: right;
     }
    }
    .content-wrapper {
     background-color: #fff;
     box-sizing: border-box;
    }
   }
  }
</style>

3.制作子页面

<template>
   <p> homepage</p>
</template>

4.路由配置

import Login from "./views/Login.vue"
import Home from "./views/Home.vue"
import Homepage from "./views/list/homepage.vue" 
import Table from "./views/list/Table.vue"

let routes = [
    {
        path: "/login",
        component: Login,
        name: "",
        hidden: true
    },
    {
        path: "/",
        component: Home,
        name: "",
        leaf: true,//只有一个节点
        iconCls: "el-icon-menu", //图标样式class
        children: [
            { path: "/homepage", component: Homepage, name: "首页" },
        ]
    },
    {
        path: "/",
        component: Home,
        name: "菜单",
        // leaf: true,//只有一个节点
        iconCls: "el-icon-message", //图标样式class
        children: [
            { path: "/table", component: Table, name: "子菜单01" }
        ]
    }
];

export default routes;

5.main.js实现

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from "vue"
import App from "./App"
import VueRouter from "vue-router"
import routes from "./routes"
import Vuex from "vuex"
import store from "./vuex/store"
import ElementUI from "element-ui"
import "element-ui/lib/theme-chalk/index.css"
import Mock from "./mock"
Mock.bootstrap();
import "./style/login.css"


Vue.use(ElementUI)
Vue.use(VueRouter)
Vue.use(Vuex)
Vue.config.productionTip = false

const router = new VueRouter({
  routes
})

router.beforeEach((to, from, next) => {
  //NProgress.start();
  if (to.path == "/login") {
    sessionStorage.removeItem("user");
  }
  let user = JSON.parse(sessionStorage.getItem("user"));
  if (!user && to.path != "/login") {
    next({ path: "/login" })
  } else {
    next()
  }
})

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app")

感谢各位的阅读,以上就是“Vue如何实现登陆跳转”的内容了,经过本文的学习后,相信大家对Vue如何实现登陆跳转这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue如何实现登陆跳转

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

jquery实现登陆跳转页面跳转页面跳转

在Web开发中,很常见的一种需求是用户通过输入账号和密码完成登陆操作后,跳转到不同的页面。这一过程中需要用到Javascript库中非常流行的jQuery来实现。jQuery是一个快速、简洁的JavaScript库,其设计思想是“写更少,做更多”。它封装了JavaScript常用的操作,让开发者可以更方便、快捷地完成网页开发。在本文中,我们将介绍如何使用jQuery实现用户登陆
2023-05-25

如何利用vue实现登陆界面及其跳转详解

在开发中我们经常遇到这样的需求,需要用户直接点击一个链接进入到一个页面,下面这篇文章主要给大家介绍了关于如何利用vue实现登陆界面及其跳转的相关资料,需要的朋友可以参考下
2023-05-15

Laravel怎么实现登陆过期后跳转到登陆页面

这篇文章主要讲解了“Laravel怎么实现登陆过期后跳转到登陆页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel怎么实现登陆过期后跳转到登陆页面”吧!一、应用场景:用户登陆后存
2023-07-04

vue加php如何实现登陆

这篇文章主要讲解了“vue加php如何实现登陆”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue加php如何实现登陆”吧!vue加php实现登录的方法:1、创建登录部分的代码文件;2、创建
2023-06-22

vue如何实现登陆页面

这篇文章主要介绍“vue如何实现登陆页面”,在日常操作中,相信很多人在vue如何实现登陆页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何实现登陆页面”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-30

php实现登陆后跳转网页的方法

本篇内容介绍了“php实现登陆后跳转网页的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现登录后跳转网页的方法:1、将当前访问页
2023-06-20

vue中如何实现路由跳转

这篇文章主要介绍vue中如何实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!跳转方式:1、用“”语句;2、用“this.$router.push()”语句;3
2023-06-25

Vue怎么实现用户访问没有登陆时自动跳转登录页面

这篇文章主要介绍了Vue怎么实现用户访问没有登陆时自动跳转登录页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么实现用户访问没有登陆时自动跳转登录页面文章都会有所收获,下面我们一起来看看吧。设计思路定
2023-07-05

Vue实现用户没有登陆时,访问后自动跳转登录页面的实现思路

这篇文章主要介绍了Vue实现用户没有登陆时,访问后自动跳转登录页面,定义路由的时候配置属性,这里使用needLogin标记访问页面是否需要登录,本文通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-02-23

vue实现局部跳转

随着 Vue 的广泛应用,我们常常需要在单页应用中实现局部跳转的功能。这种跳转主要是指页面内部的链接跳转,比如实现一个“返回顶部”的功能、或者在一个单页应用中实现切换不同的内容的功能等。在经过一番研究之后,我发现了两种比较有效的实现方法,分别是使用锚点和通过编程方式实现。## 使用锚点锚点是一种 HTML 语法,其可以在同一个页面内部实现跳转。其实现原理是在页面中为指定元素添加
2023-05-23

vue如何使用router-link实现路由跳转

这篇文章主要介绍vue如何使用router-link实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!router-link 【实现跳转最简单的方法】
2023-06-18

vue加php怎么实现登陆

vue加php实现登录的方法:1、创建登录部分的代码文件;2、创建Javascript代码;3、在vue项目中使用PHP来做用户的注册和登录功能即可。
2021-03-06

编程热搜

目录