Day 3 登录页以及路由 (一)

news2024/11/21 0:23:28

登录页以及路由

需求

作为一个后台管理系统,登录页是必不可少的。登录页的需求也很简单,输入账号密码,有登录、重置按钮即可。主要界面类似这种:

登录提交到后台,校验成功后,跳转到系统主页。

另外一个需求就是路由层面的,即当路由到其它页面时,需要判断登录状态,未登录或登录失效时,需要跳转到登录页。

结构

上述需求涉及到两个东西,路由和页面组件,按照普遍的做法,使用Vue官方推荐Router, 在App.vue中,只保留 RouteView组件,具体页面元素交由view进行渲染。

而登录判断则放到路由守护中处理。

实现

App.vue,现阶段仅需要如下代码即可

<template>
  <el-config-provider>
    <RouterView/>
  </el-config-provider>
</template>

<script setup lang="ts">
</script>

<style lang="less" scoped>
</style>

重点是路由配置,之前的脚手架已经创建好文件,/src/router/index.ts ,直接编辑如下:

import { createRouter, createWebHistory } from 'vue-router'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      redirect: '/home/index'
    },
    {
      path: '/home/index',
      name: 'home',
      component: () => import('@/views/home/HomeIndex.vue')
    },
    {
      path: '/login',
      name: 'login',
      component: () => import('@/views/login/LoginView.vue')
    }
  ]
})

// 校验登录是否有效
const validateLoginState = () => {
  // Mock 实现
  const timestamp = Date.parse(new Date().toString())
  console.log('timestamp-->' + timestamp)
  return timestamp % 4000 == 0
}

const LOGIN_URL = '/login'

router.beforeEach(async (to, from) => {
  // 判断是否访问登陆页
  if (to.path.toLocaleLowerCase() != LOGIN_URL) {
    // 校验登录是否有效
    if (!validateLoginState()) {
      // 登录失效,跳转到登录页
      console.log('Login State invalid')
      router.push(LOGIN_URL)
    } else {
      console.log('Login State valid')
    }
  }
})
export default router

其中校验登录是否失效暂时用了Mock实现,判断当前时间戳是否为4000的倍数。

接下来就是登录组件, /src/views/login/LoginView.vue,先来个占位实现:

<template>
    Login
    <RouterLink to="/">Go to Home</RouterLink>
</template>

同样,首页 /src/views/home/HomeIndex.vue, 也是先占位实现:

<template>
    Home
</template>

效果如下:

在登录页上不停点击 【Go to Home】, 可以看到日志输出,当 Login State valid 时,就可以正常跳转到 /home/index。

而不停的刷新 /home/index时,也可以看到当 Login State Invalid时,自动跳转到 /login

至此,基本框架搭建好了,后面就是具体实现了。今天没时间了,后面再搞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1149471.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring MVC的常用注解(接收请求数据篇)

目录 RequestMapping 例子&#xff1a; RequestMapping 支持什么类型的请求 使 RequestMapping 只支持特定的类型 RestController 通过 HTTP 请求传递参数给后端 1.传递单个参数 注意使⽤基本类型来接收参数的情况 2.传递多个参数 3.传递对象 4.RequestParam 后端参数…

分布式:一文吃透分布式锁,Redis/Zookeeper/MySQL实现

目录 一、项目准备spring项目数据库 二、传统锁演示超卖现象使用JVM锁解决超卖解决方案JVM失效场景 使用一个SQL解决超卖使用mysql悲观锁解决超卖使用mysql乐观锁解决超卖四种锁比较Redis乐观锁集成Redis超卖现象redis乐观锁解决超卖 三、分布式锁概述四、Redis分布式锁实现方案…

Threejs 三维开发系列之Threejs基础概念

Threejs简介(是什么)Threejs是一个web端的3D图形引擎&#xff0c;能利用js创建和控制各种三维模型和场景(能用来做什么)可以用js开发各种复杂的三维场景、空间模型动画展示、各种三维小游戏(比如微信跳一跳就是Threejs开发)。(优势) 传统三维开发一般是c openGl&#xff0c;开发…

计算机考研 | 2014年 | 计算机组成原理真题

文章目录 【计算机组成原理2014年真题44题-12分】【第一步&#xff1a;信息提取】【第二步&#xff1a;具体解答】 【计算机组成原理2014年真题45题-8分】【第一步&#xff1a;信息提取】【第二步&#xff1a;具体解答】 【计算机组成原理2014年真题44题-12分】 &#xff08;1&…

SAML- 安全断言标记语言

一、概念 安全断言标记语言&#xff08;SAML&#xff09;是一种开放标准&#xff0c;用于在各方之间&#xff08;特别是身份提供商和服务提供商之间&#xff09;交换身份验证和授权数据。SAML 是一种基于XML的安全断言标记语言&#xff08;服务提供商用来做出访问控制决策的语句…

OpenCV—自动驾驶实时道路车道检测(完整代码)

自动驾驶汽车是人工智能领域最具颠覆性的创新之一。在深度学习算法的推动下,它们不断推动我们的社会向前发展,并在移动领域创造新的机遇。自动驾驶汽车可以去传统汽车可以去的任何地方,并且可以完成经验丰富的人类驾驶员所做的一切。但正确地训练它是非常重要的。自动驾驶汽…

MaxQuant的安装和使用(linux)

安装 conda create -n maxquant conda activate maxquant conda install -c bioconda maxquantmaxquant --help # 查看命令行参数用法 MaxQuant goes Linux 2018年&#xff0c;作者发布了MaxQuant的linux版本&#xff08;1.6.1.0&#xff09;。该版本主要依赖mono。

这三个视频解析工具,谁看了不说好用?

在这个自媒体时代&#xff0c;很多小伙伴都有下载视频的需求&#xff0c;今天就来给大家分享三个视频下载解析工具&#xff0c;不仅操作简单&#xff0c;而且十分高效&#xff0c;谁用谁知道&#xff01; 一、WeDown 一个在线视频下载网站&#xff0c;支持直接复制视频地址链接…

使用Python编写多因子量化策略详解

概要 多因子量化策略是一种基于股票市场因子进行量化分析的投资策略。该策略基于多个因子模型并结合市场数据&#xff0c;通过计算每支股票的综合得分并以此为基础进行股票的选取和权重分配。在本篇文章中&#xff0c;我们将介绍如何使用Python编写多因子量化策略。 数据收集…

【年终特惠】基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升

根据生态环评内容庞杂、综合性强的特点&#xff0c;依据生态环评最新导则&#xff0c;将内容分为4大篇章(报告篇、制图篇、指数篇、综合篇)、10大专题(生态环评报告编制、土地利用图的制作、植被类型及植被覆盖度图的制作、物种适宜生境分布图的制作、生物多样性测定、生物量及…

php yield定义生成器,加快foreach、for等循环速度

yield关键字用于定义生成器函数。生成器函数可以一次生成一个值&#xff0c;并在每次生成值后暂停其执行&#xff0c;直到请求下一个值。这使得生成器可以有效地处理大量数据或无限数据流 不使用yield使用yield执行方式函数会立即执行&#xff0c;并一次性返回所有结果。函数执…

【CPP】类和对象

1- Classes and Objects Structures A struct in C is a type consisting of a sequence of data membersSome functions/Statements are needed to operate the data members of an object of a struct type 不不小心操作错误&#xff0c;不小心越界 Classes You should b…

五分钟理解Java跨平台原理(适合小白)

JVM通俗的理解 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机&#xff0c;即JVM&#xff08;Java Virtual Machine&#xff09;是实现这一特点的关键。JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机…

SMART PLC梯形速度曲线轨迹规划(追剪从轴控制)

在介绍本专栏之前,大家可以参考另一篇博图PLC的梯形加减速点动功能块介绍文章 梯形加减速点动功能块(博途SCL)_RXXW_Dor的博客-CSDN博客文章浏览阅读184次。SMART PLC斜坡函数SMART PLC斜坡函数功能块(梯形图代码)_RXXW_Dor的博客-CSDN博客斜坡函数Ramp的具体应用可以参看下…

vue3+element-plus 表格全选和跨页勾选,以及全选全部功能

目录 背景描述 实现效果 详细开发 1.模拟数据和页面布局 2.跨页勾选和点击勾选功能 3.表头全选 4. 全选全部 &#xff08;1&#xff09;全选后禁用表格勾选&#xff08;简单&#xff09; &#xff08;2&#xff09;真正意义上的全选全部&#xff08;难&#xff09; 总…

「Eolink Apikit 教程」如何快速创建有效的API监控任务?

API 监控能够确保 API 的稳定性。如果一个 API 出现故障或崩溃&#xff0c;它可能会导致整个应用程序无法正常工作。这对用户和业务来说可能是灾难性的。通过监控 API&#xff0c;开发团队可以及时发现问题并采取措施来修复它们&#xff0c;从而降低应用程序中断的风险。 作为…

(免费领源码)PHP#mysql高校学生考证资源共享小程序35055-计算机毕业设计项目选题推荐

摘要 大学生“考证”已经成为大学生的一门必修课&#xff0c;越来越多的大学生加入考证的行列&#xff0c;他们认为毕业找工作的时候&#xff0c;证书是多多益善。大学生“考证热”应该引起学生&#xff0c;学校、以及社会用人单位等多方面的高度重视。大学生考证热潮的形成&am…

拉普拉斯噪声

拉普拉斯噪声是指从拉普拉斯分布中抽取的随机变量。拉普拉斯分布是一种连续型概率分布&#xff0c;其概率密度函数为&#xff1a; 拉普拉斯噪声在差分隐私&#xff08;Differential Privacy&#xff09;领域中被广泛使用&#xff0c;原因有以下几点&#xff1a; 灵活性&#xf…

学习笔记|单样本t检验|P值|两独立样本均数T检验|规范表达|《小白爱上SPSS》课程:SPSS第五讲 | 两独立样本均数T检验,你会了吗?

目录 学习目的软件版本原始文档P值是假设检验的终极者两独立样本均数T检验一、实战案例二、案例解析三、统计策略四、SPSS操作1、正态性检验2、T检验&#xff08;独立样本T检验&#xff09;结果 五、结果解读Tips&#xff1a;补充知识 六、规范报告1、规范表格2、规范文字 注意…

2.基于Jetson Nano的嵌入式小车避障项目

英伟达jetbot智能小车 一.数据采集 数据采集的时候&#xff0c;一定要不用的光线&#xff0c;不同的方向&#xff0c;不同的环境。 一般500-600张 二.AI训练 三.AI部署 import torch import torchvision3.1 加载预训练模型 第一步&#xff1a;载入模型 model torchvisi…