Vue实训---6-完成用户退出操作

news/2024/12/16 3:46:45/

完成用户退出操作

1.在src\stores\index.js中添加退出登录方法

    setToken(newToken) {
      this.token = newToken;
    },

import { defineStore } from "pinia";
import { ref, computed, reactive } from "vue";// 你可以认为 state 是 store 的数据 (data),getters 是 store 的计算属性 (computed),而 actions 则是方法 (methods)。
export const useAllDateStore = defineStore("allDate", {state: () => ({isCollapse: false,token: null,}),getters: {// doubleCount: (state) => state.count * 2,},actions: {toggleCollapse() {this.isCollapse = !this.isCollapse;},setToken(newToken) {this.token = newToken;},resetToken() {// 退出登录, 清空tokenthis.token = null;},},
});

2.在src\components\CommonHeader.vue添加退出登录点击事件

<el-dropdown-item @click="toggleToken">退出</el-dropdown-item>

import { useRouter } from 'vue-router';
const router = useRouter() 

// toggleToken方法 退出登录
const toggleToken = () => {
    store.resetToken() // 清空token
    router.push('/login') // 跳转到登录页面
}

<template><div class="header"><!-- 左侧点击四个点的Menu按钮具有折叠菜单栏的功能,右侧user的头像,头像有下栏菜单 --><div class="l-content"><el-button size="small" @click="toggleCollapse"><component class="icons" is="menu"></component></el-button><el-breadcrumb separator="/" class="bread"><el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item></el-breadcrumb></div><div class="r-content"> <el-dropdown><span class="el-dropdown-link"><!-- Dropdown List<el-icon class="el-icon--right"><arrow-down /></el-icon> --><!-- 将此部分内容换成我们要显示的用户头像图片(my-vue-project\src\assets\images\user.png) --><img :src="getImageUrl('user')" alt="用户头像" class="user" /></span><template #dropdown><el-dropdown-menu><el-dropdown-item>个人中心</el-dropdown-item><el-dropdown-item @click="toggleToken">退出</el-dropdown-item></el-dropdown-menu></template></el-dropdown></div></div>
</template><script setup>
import { ref, computed } from 'vue'
// 通过参数user的名字可以获取动态的图片的url
// 通过new URL()方法可以创建并返回一个URL对象,用来获取图片的url(百度new URL MDN)
// 通过import.meta.url可以获取当前模块的url
const getImageUrl = (user) => {return new URL(`../assets/images/${user}.png`, import.meta.url).href
}import { useAllDateStore } from '@/stores/index';
// 获取 store 实例
const store = useAllDateStore();
// 实现toggleCollapse方法
const toggleCollapse = () => {store.toggleCollapse()
}// // 路由
import { useRouter } from 'vue-router';
const router = useRouter()
// toggleToken方法 退出登录
const toggleToken = () => {store.resetToken() // 清空tokenrouter.push('/login') // 跳转到登录页面
}
</script><style lang="less" scoped>
.header {display: flex;justify-content: space-between;align-items: center;width: 100%;height: 100%;background-color: #333;
}.icons {width: 20px;height: 20px;}.l-content {display: flex;align-items: center;.el-button {margin-right: 20px;}
}.r-content {.user {width: 40px;height: 40px;border-radius: 50%;}
}:deep(.bread span) {color: #fff !important;cursor: pointer !important;
}
</style>

3.效果:

点击“退出按钮”后,页面跳转至登录页面。


http://www.ppmy.cn/news/1555484.html

相关文章

IDEA懒人必备插件:自动生成单元测试,太爽了!

今天来介绍一款工具Squaretest&#xff0c;它是一款自动生成单元测试的插件&#xff0c;会用到它也是因为最近公司上了代码质量管控的指标&#xff0c;会考评各个项目的单元测试覆盖率&#xff0c;以及sonar扫描出来的各种问题。 很多老项目老代码&#xff0c;或者着急交付的项…

【Linux基础】基本开发工具的使用

目录 一、编译器——gcc/g的使用 gcc/g的安装 gcc的安装&#xff1a; g的安装&#xff1a; gcc/g的基本使用 gcc的使用 g的使用 动态链接与静态链接 程序的翻译过程 1. 一个C/C程序的构建过程&#xff0c;程序从源代码到可执行文件必须经历四个阶段 2. 理解选项的含…

PostgreSQL JSON/JSONB 查询与操作指南

PostgreSQL 提供了强大的 JSON 和 JSONB 数据类型及相关操作&#xff0c;适用于存储和查询半结构化数据。本文将详细介绍其常用操作。 1. 基础操作 1.1 JSON 属性访问 ->: 返回 JSON 对象中的值&#xff0c;结果为 JSON 格式。 SELECT {"a": {"b": 1…

如何在服务器上安装 Maven

1. 安装Java Development Kit (JDK) 由于Maven依赖于Java运行环境&#xff0c;因此首先需要确保系统中已经安装了合适的JDK版本。 通过以下命令检查Java版本&#xff0c; java -version如果未安装JDK可以参考如何在服务器上安装 Java OpenJDK相关文档来安装特定版本的JDK。 …

HOW - PPT 制作系列(四)- 实践和技巧

目录 一、神器与技巧二、色彩的搭配三、图片的处理四、形状与图标五、字体的处理六、图表的制作七、总结/制作思维八、如何精简 ppt 内容我们 PPT 制作系列在之前已经介绍过: HOW - PPT 制作系列(一)- 一页ppt里要注意什么HOW - PPT 制作系列(二)- 三大技能HOW - PPT 制作…

魅族手机刷官方系统

从魅族官网下载固件 https://flyme.cn/firmware.html 找到自己的型号&#xff0c;里面有历史版本、最新版&#xff0c;按照需求下载。 下载的是update.zip&#xff0c;改名就不能升级了 方法1 直接点击下载的update.zip包就可以升级。 方法2 将文件移动到文件管理的根目录&a…

git commit提交时报错running pre-commit hook:lint-staged

背景描述 在提交代码时 突然报错running pre-commit hook:lint-staged 下方则有报错文件及因为什么报错的提示 解决方式 最简单粗暴的解决方式就是在项目文件夹中的.git文件内的hooks文件夹中pre-commit删除掉 进行不检测提交或者直接强制提交--no-verify 但源头其实是因为…