当前位置: 首页 > news >正文

【项目】Vue3+TS 退出登录 menu header搭建

💭💭

✨:【项目】Vue3+TS 退出登录 menu header搭建

💟:东非不开森的主页

💜: 今天永远比昨天更好💜💜

🌸: 如有错误或不足之处,希望可以指正,非常感谢😉

项目

  • 一、登录模块
    • 1.1. 跳转到主页
    • 1.2.退出登录
    • 1.3.记住密码
    • 1.4.获取用户信息
  • 二、 menu搭建
  • 三、header搭建

一、登录模块

1.1. 跳转到主页

路由导航守卫
参考资料: 地址

vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航(也就是路由拦截),一般用于访问某些页面的限制,如是否登录或者是否有权限

当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于等待中。

每个守卫方法接收两个参数:

  • to: 即将要进入的目标
  • from: 当前导航正要离开的路由

在这里插入图片描述

  • 这样写我们可以确保只要不是main下面,那么一定就要返回去登录
router.beforeEach((to) => {// 只有登录成功(token), 才能真正进入到main页面const token = localCache.getCache(LOGIN_TOKEN)if (to.path.startsWith('/main') && !token) {return '/login'}
})

在这里插入图片描述

在这里插入图片描述

1.2.退出登录

  • 需要定义一个事件,去除token,
    在这里插入图片描述

在这里插入图片描述

1.3.记住密码

这里我们都是在store进行报错的,可以全局共享数据
定义一个变量记录是否记住密码

  • 我们需要把输入的账号密码保存在账号里面然后进行判断
  • 再决定是否需要记住密码
  • 需要就保存进去
  • 不需要就移除

在这里插入图片描述
在这里插入图片描述

  • 需要记住密码,就保存,不需要就清除

在这里插入图片描述

1.4.获取用户信息

在这里插入图片描述

  • token可以写在请求数据那里
  • 但是最好写在拦截器里面

在这里插入图片描述
在这里插入图片描述
这个注意有个空格
这里如果axios版本是1.2.2的话会报错

具体文章: 类型“AxiosHeaders | Partial<RawAxiosHeaders & MethodsHeaders & CommonHeaders>”上不存在属性“Authorization”

在请求拦截器里添加Authorization携带Token
所以要这样写

interceptors: {requestSuccessFn: (config) => {// 每一个请求都自动携带tokenconst token = localCache.getCache(LOGIN_TOKEN)if (config.headers && token) {// 类型缩小typeof config.headers.set === "function" &&config.headers.set("Authorization", `Bearer ${token}`)// config.headers.Authorization = "Bearer " + token}return config}}

这里我们可以给state定义类型,还有要注意我们所要的数据的类型是什么,别搞错了
userInfo/userMenus进行本地缓存
在这里插入图片描述
请求数据
在这里插入图片描述
数据
在这里插入图片描述

二、 menu搭建

在这里插入图片描述
我们可以先搭出来静态页面,然后再进行
在这里插入图片描述
获取数据
在这里插入图片描述

在这里插入图片描述

数据渲染
这里用到了动态组件,动态组件往往用于tab切换,
官方文档:
在这里插入图片描述

在这里插入图片描述

控制折叠
需要定义变量isFold为布尔值

main.vue
在这里插入图片描述
在这里插入图片描述

main-header.vue 图标部分
在这里插入图片描述

自定义时间,传递给父组件
在这里插入图片描述

main-menu.vue
文字部分隐藏显示
在这里插入图片描述
在这里插入图片描述

预览:
请添加图片描述

三、header搭建

header搭建
在这里插入图片描述
在这里插入图片描述
下拉菜单
Dropdown 插槽
在这里插入图片描述
退出登录
我们需要用到路由,还有之前的token
在这里插入图片描述

请添加图片描述

每个页面点击可以切换到对应页面
先构建页面
在这里插入图片描述
在这里插入图片描述

  • 动态的菜单进行权限管理
  • 但是所有的路由都是被注册进去

相关文章:

【项目】Vue3+TS 退出登录 menu header搭建

💭💭 ✨:【项目】Vue3TS 退出登录 menu header搭建   💟:东非不开森的主页   💜: 今天永远比昨天更好💜💜   🌸: 如有错误或不足之处,希望可以指正&#x…...

LoRaWAN模块在车辆跟踪定位中的应用

目前 GPS已经在资产的管理中得到了越来越多的运用,如车辆跟踪、车队跟踪、资产监控等;人员跟踪,宠物跟踪,等等。在所有追踪装置中,最重要的是它的电池期望和监视距离。鉴于 LoRaWAN的功率消耗很小,而且能在…...

软件测试分类

软件测试分类 从上图我们发现软件测试根据不同的分类条件会有不同的结果. 1. 按照阶段进行划分 1.1 单元测试(Unit Testing) 单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。 测试阶段&#x…...

外置的媒体查询,对性能又一次的优化提升

通常情况下我们写媒体查询都是写在一个样式文件中,对于浏览器加载的时候,会解析到最后一行样式时才会渲染页面,这样就会造成页面的白屏时间过长。 但是通常情况下大量的媒体查询样式都是无用的,现在浏览器允许我们在引用样式文件…...

【Galois工具开发之路】关于IDEA的gradle工程执行两次premain的bug~

文章目录关于premain方法问题记录解决方式关于premain方法 是Java Agent技术的一种,通过 -javaagent: 的方式,添加外部代理,代理入口方法为 premain 。另一种Java Agent技术则是动态attach到java进程的方式,这种方式则是使用 age…...

云计算 概念与技术

如果我倡导的计算机在未来得到使用,那么有一天,计算也可能像电话一样成为共用设施。计算机应用将成为一全新的、重要的产业的基础。 ——John McCarthy 云计算的概念 定义 Garther公司的定义 一种计算方式,能通过Internet技术将可扩展的和…...

基于追踪标记的WAF设计思路

一 相关背景 目前,市面上的WAF产品通常采用”发现即阻断“的策略,以防护针对业务系统的Web攻击行为。虽然该策略可及时阻断攻击,但形式上过于简单,并不能有效掌握攻击者进一步的攻击意图,也不能有效提高攻击者的成本投…...

Java StringBuffer StringBuilder,超详细整理,适合新手入门

目录 一、StringBuffer和StringBuilder的区别是什么? 二、StringBuffer的示例 三、StringBuilder的示例 四、为什么StringBuffer和StringBuilder比String更适合在循环中使用? 五、如何将String对象转换为StringBuilder或StringBuffer对象&#xff1…...

数据结构—堆(完全解析)

数据结构—堆(完全解析) 数据结构——堆(Heap)大根堆、小根堆 详解数据结构——堆 堆的基本存储 【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆 【堆/排序】堆排序的两种建堆方法 【算法】排序算法之堆排序 C…...

深度卷积对抗神经网络 进阶 第三部分 GANs Unpaired Translation with Cycle GAN 模型

非配对的图像转换应用 Unpaired Image-to-Image Translation Unpaired image-to-image translation 主要用于学习两组图像之间的对应关系,检查和寻找两堆数据中的共同内容(content)以及每堆独有的特点(style)。而这个…...

常见的排序算法 | 直接插入排序 | 希尔排序 | 选择排序 | 堆排序 | 冒泡排序 | 快速排序 | 归并排序 |(详解,附动图,代码)

思维导图: 一.插入排序 1.直接插入排序(InsertSort) ①手机通讯录时时刻刻都是有序的,新增一个电话号码时,就是使用插入排序的方法将其插入原有的有序序列。 ②打扑克 步骤: ①如果一个序列只有一个数&am…...

深入浅出 MySQL 索引(一)

MySQL 索引(基础篇) 你好,我是悟空。 本文目录如下: 一、前言 最近在梳理 MySQL 核心知识,刚好梳理到了 MySQL 索引相关的知识,我的文章风格很多都是原理 实战的方式带你去了解知识点,所以…...

FinClip 的 2022 与 2023

相比往年,今年复盘去年与展望新年的文章来的稍慢一点。不过也希望能够借这篇文章,和关注 FinClip 的用户朋友们一起聊聊,我们在去年和今年的想法与计划。 2022 在过去的一年中,我们的身边发生了很多事情,这些事情在不…...

Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

先上解决方法:https://stackoverflow.com/questions/57706180/generict-base-class-how-to-get-type-of-t-from-within-instance 再来简单分析下源码。 talk is cheap, show me the code. from typing import Dict Dict[str, int]Dict只是一个类型,并不…...

Shell语法基础总结

Shell 变量使用变量只读变量删除变量变量类型Shell 字符串单引号与双引号字符串获取字符串长度提取子字符串拼接字符串Shell 数组定义数组读取数组获取数组的长度Shell 传递参数Shell 基本运算符算术运算符关系运算符布尔运算符逻辑运算符字符串运算符Shell 信息输出命令Shell …...

架构基本概念和架构本质

什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础&…...

taobao.trade.ordersku.update( 更新交易的销售属性 )

¥开放平台免费API必须用户授权 只能更新发货前子订单的销售属性 只能更新价格相同的销售属性。对于拍下减库存的交易会同步更新销售属性的库存量。对于旺店的交易,要使用商品扩展信息中的SKU价格来比较。 必须使用sku_id或sku_props中的一个参数来更新&a…...

算法实战应用案例精讲-【图像处理】使用scikit-image做图像处理(最终篇)(附python代码实现)

目录 高级滤波 autolevel bottomhat 与 tophat enhance_contrast entropy equalize gradient 其它滤波器...

数据结构与算法(四):树结构

前面讲到的顺序表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构——树。「一对多」就是指一个元素只能有一个前驱,但可以有多个后继。 一、基本概念 树(tree)是n(n>0)个结点的有穷集。n0时称…...

taobao.trade.shippingaddress.update( 更改交易的收货地址 )

¥开放平台免费API必须用户授权 只能更新一笔交易里面的买家收货地址 只能更新发货前(即买家已付款,等待卖家发货状态)的交易的买家收货地址 更新后的发货地址可以通过taobao.trade.fullinfo.get查到 参数中所说的字节为GBK编码的&…...

深度测评 10个降AIGC平台:毕业论文全流程降AI率全解析

随着AI技术在学术写作中的广泛应用,越来越多的学生开始面临一个共同的难题:如何有效降低论文的AIGC率,同时保持内容的逻辑性和语义通顺。AI生成的内容虽然效率高,但往往存在明显的痕迹,容易被查重系统识别,…...

软件工程软件开发生命周期瀑布模型与敏捷模型的比较

软件工程中的开发模型选择直接影响项目成败,瀑布模型与敏捷模型作为两种经典方法论,分别代表了结构化与灵活性的两极。随着数字化转型加速,开发团队常面临模型选择的困惑。本文将从核心维度对比二者的差异,帮助读者理解不同场景下…...

湖南特产酱板鸭项目有哪些

大家好,今天咱们聊聊湖南特产中的明星产品——酱板鸭。说到酱板鸭,大家可能会想到各种品牌,但今天我要重点介绍的是“渔小站君山酱板鱼”这个品牌。为什么呢?因为它不仅传承了传统的制作工艺,还在经营模式上做了很多创…...

TypeScript学习笔记 - P1

TypeScript学习笔记——简介1. TypeScript的简介2. TS增加了什么?1. 类型2. 支持ES6新特性3. 添加ES不具备的新特性4. 丰富的配置选项5. 强大的开发工具3.TS开发环境搭建1. 下载Node.js2. 安装Node.js3. 使用npm全局安装typescript4.第一个TS文件1. 创建ts文件1. 编…...

FoodAdvisor角色权限配置:基于RBAC的多用户访问控制策略

FoodAdvisor角色权限配置:基于RBAC的多用户访问控制策略 【免费下载链接】foodadvisor 🥘 THE Strapi demo application 项目地址: https://gitcode.com/gh_mirrors/fo/foodadvisor 在现代Web应用开发中,有效的用户权限管理是保障系统…...

5分钟上手BrcmPatchRAM:从安装到验证的快速启动教程

5分钟上手BrcmPatchRAM:从安装到验证的快速启动教程 【免费下载链接】BrcmPatchRAM 项目地址: https://gitcode.com/gh_mirrors/br/BrcmPatchRAM BrcmPatchRAM是一款专为macOS设计的驱动程序,用于为Broadcom蓝牙设备提供固件更新支持。它能在每次…...

终极Botkit生成器使用指南:3步快速创建聊天机器人项目骨架

终极Botkit生成器使用指南:3步快速创建聊天机器人项目骨架 【免费下载链接】botkit Botkit is an open source developer tool for building chat bots, apps and custom integrations for major messaging platforms. 项目地址: https://gitcode.com/gh_mirrors/…...

饿了么CPS系统中Java后端服务的JVM参数调优与内存管理技巧

饿了么CPS系统中Java后端服务的JVM参数调优与内存管理技巧 在饿了么CPS系统中,订单同步、佣金计算、分佣发放等任务对内存和GC停顿极为敏感。若JVM参数配置不当,将导致频繁Full GC、响应延迟飙升甚至OOM崩溃。本文结合G1GC调优、堆外内存监控、对象复用及…...

Canoe-Autosar网络管理自动化测试脚本及Capl源码:全套、可直接使用修改项目配置

Canoe-Autosar网络管理自动化测试脚本 Capl源码,全套,修改项目配置可以直接使用。 1.启动程序 2.加载配置文件 3.选择帧类型(标准帧或扩展帧) 4.修改配置文件,自动弹出配置文件窗口 5.选择测试用例 6.点击运行 7.测试完成打印报告并记录对应…...

Qwen3-Reranker-8B内存优化:在16GB显卡上的部署方案

Qwen3-Reranker-8B内存优化:在16GB显卡上的部署方案 1. 引言 如果你手头只有一张16GB显存的GPU,却想运行Qwen3-Reranker-8B这样的大模型,可能会觉得有点棘手。毕竟8B参数的模型通常需要更多的显存,直接加载很可能就会爆显存。 …...