黑马头条vue2.0项目实战(三)——个人中心功能的实现

news2024/12/23 20:27:37

1. Tabbar 处理

        通过分析页面,可以看到,首页、问答、视频、我的 都使用的是同一个底部标签栏,我们没必要在每个页面中都写一个,所以为了通用方便,我们可以使用 Vue Router 的嵌套路由来处理。

  • 父路由:一个空页面(layout布局页面),包含一个 tabbar,中间留子路由出口
  • 子路由:
    • 首页
    • 问答
    • 视频
    • 我的

1.1 创建 tabbar 组件并配置路由

这里主要使用到的 Vant 组件:

  • Tabbar 标签栏

① 创建 src/views/layout/index.vue。

② 然后将 layout 组件配置到一级路由,注意访问 / 测试。

③ 分别创建首页、问答、视频、我的页面组件。

④ 将四个主页面配置为 tab-bar 的子路由

2. 个人中心页面布局

  • 未登录头部状态
  • 已登录头部
    • 头像:van-image组件
    • flex布局需要熟练运用。
  • 宫格导航(收藏与历史)
    • van-grid 组件

    • clickable 点击有反馈交互效果

    • slot 自定插入的标签与文字

  • 单元格导航(消息通知与小智同学)
  • 退出登陆按钮

    • cell 单元格,只设置 value 或者 title 时,内容和标题会靠左对齐。

    •  

    • 解决方案:设置文本内容居中对齐 text-align: center;(css基础,不要忘)

3. 处理已登录和未登录的页面展示

  • 未登录,展示登录按钮
  • 已登录,展示登录用户信息

用户登录与否的判断标准是 token 是否存在,token 存在全局共享数据的 store里。(辅助函数的使用)

4. 用户退出

  • 给退出按钮注册点击事件
  • 退出处理

注意点:

  • dialog 组件的使用,由于在全局导入所有组件,所以可以通过 this.$dialog 直接调用(字母d小写), 手动按需引入组件方式调用如下:

  • 退出之后将 sotre 中共享的值 user 设置为null,清除浏览器缓存,即将 token 和 refresh_token 清除。在 store 中先设置了共享的 user 的值,之后再将 user 的值存入缓存,把 null 传递过去的时候,共享的 user 被设置为了null,之后缓存的值也被设置为了null。

5. 展示登录用户信息

步骤:

① 封装接口

  • 在 api/my.js 中添加封装数据接口,之后导出。
    • 注意此类接口是需要授权才能使用的接口,所以需要提供 token 才有访问权限,后端接口要求我们将 token 放到请求头 Header 中并以下面的格式发送。headers配置对象中的 'Content-Type': 'application/json' 可以省略不写。
    • Authorization属性值固定写法:Bearer + 空格 + token

  • 在 api/index.js 导入接口添加 API 后缀,再导出该接口。

② 请求获取数据

  • 在 views/my/index.vue 的 methods 里封装该方法,之后在组件被创建(created)的时候调用该方法

③ 模板绑定

6. 优化设置 Token(添加请求拦截器)

        项目中的接口除了登录之外大多数都需要提供 token 才有访问权限。

        通过接口文档可以看到,后端接口要求我们将 token 放到请求头 Header 中并以下面的格式发送。

字段名称:Authorization

字段值:Bearer + 空格 + token,注意 Bearer 和 token 之间有一个空格。

方式一:在每次请求的时候手动添加(麻烦)。

方式二:使用请求拦截器统一添加(推荐,更方便)。

  • sequenceDiagram
    • participant A as 发起请求
    • participant B as 请求拦截器
    • participant C as 服务端
  • A-->>B: http://xxx
  • Note right of B: 设置 token
  • B->>C: 请求发出

查看 axios 官网关于请求拦截器的用法(拦截器 | Axios中文文档 | Axios中文网)

粘贴代码在 src/utils/request.js 中添加拦截器统一设置 token:

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

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

相关文章

激发潜能,Vatee万腾平台驱动企业持续发展

在当今这个日新月异的商业环境中,企业要想保持竞争力并实现持续发展,就必须不断挖掘自身潜能,探索新的增长点。而Vatee万腾平台,正是这样一位能够激发企业潜能、驱动其持续发展的强大伙伴。 一、智能化赋能,解锁企业潜…

了解ISO 22301:业务连续性管理的关键

在当今全球化和复杂化的商业环境中,企业面临着各种潜在的风险和灾难,这些可能对其运营和声誉造成严重影响。为了有效地应对这些挑战并保障持续经营,国际标准化组织(ISO)引入了ISO 22301标准,这是一项专注于…

智能制造与工业物联网CC2530——定时器查询和中断

一、项目目的: 熟悉 ZigBee 模块相关硬件接口。使用 IAR 开发环境设计程序,学习 CC2530 定时器的使用,利用 CC2530 的定时器 T1 查询方式控制 LED 周期性闪烁。 二、项目原理: LED及按键原理图,如下图所示&#xff…

使用“阿里云人工智能平台 PAI”制作数字人

体验 阿里云人工智能平台 PAI PAI-DSW免费试用 https://free.aliyun.com/?spm5176.14066474.J_5834642020.5.7b34754cmRbYhg&productCodelearn https://help.aliyun.com/document_detail/2261126.html 体验PAI-DSW https://help.aliyun.com/document_detail/2261126.…

一文详解香港机房服务器干什么用的

香港机房服务器干什么用的?香港机房服务器是用于数据存储和备份、网络服务、数据处理与分析、云计算服务、游戏托管服务、其他服务等。香港机房服务器在现代互联网业务中扮演着至关重要的角色,其主要用途可以归纳为以下几个方面: 1、数据存储…

卡拉OK歌唱比赛活动策划方案

一、活动详细策划 (一)、前期工作准备 1、制定详细的策划方案、比赛流程,通知稿。 2、收集各参赛选手详细资料在选手上台前展示出,让各评委及嘉宾对选手有个初步认识。 3、各工作组准备好相关道具(音响、无线话筒、低…

数据大脑智慧工厂数据平台建设方案(可编辑60页PPT)

引言:随着工业4.0时代的到来,智能制造已成为推动产业升级的核心引擎。为了进一步提升生产效率、优化资源配置、实现精准决策与个性化定制,构建一套高效、智能的数据大脑智慧工厂数据平台显得尤为重要。 方案介绍: 在数字化转型的…

05.FreeRTOS任务挂起与恢复

05. FreeRTOS任务挂起与任务恢复 1. FreeRTOS 挂起和恢复任务相关 API 函数 函数描述vTaskSuspend()挂起任务vTaskResume()恢复被挂起的任务xTaskResumeFromISR()在中断中恢复被挂起的任务 函数vTaskSuspend() 此函数用于挂起任务,若使用此函数,需要在…

【Docker】Namespace 空间隔离实战

一、实战目的 了解隔离能力并不是 Docker 提供的,而是操作系统内核提供基本能力。 二、基础知识 1、dd 命令详解 Linux dd 命令用于读取、转换并输出数据。 dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、…

直流电表常见的应用有哪些

直流电表作为电力系统中不可或缺的计量工具,其应用广泛且多样化。以下是对直流电表常见应用的详细归纳: 一、新能源发电系统 1. 太阳能光伏发电 应用背景:太阳能光伏发电系统通过太阳能电池板将光能转化为直流电能。直流电表在这一系统中扮…

浪潮NF5280M4虚拟磁盘OFFLINE和磁盘状态为“Frn-Bad”与“UB”故障处理

客户托管设备的机房异常断电,导致6台浪潮NF5280M4的系统无法访问,系统所在的RAID组中的2块磁盘全部亮故障灯。 通过设备管理界面检查,发现逻辑磁盘处于Offline状态: 物理磁盘也处于Offline状态: 进入BIOS RAID配置…

介绍几种 iutils.dll丢失的解决办法,iutils.dll文件详细介绍

电脑中经常会出现 iutils.dll文件丢失的情况,所以如果电脑中缺失 iutils.dll文件会让大家很苦恼,那么 iutils.dll丢失有什么解决办法呢?今天就给大家介绍几种 iutils.dll丢失的解决办法。 1. iutils.dll 文件的来源 iutils.dll 是一个动态链…

npm 修改 淘宝源

aliyun ECS npm 源也不顺畅了,哎 😑 npm config get registrynpm config set registry https://registry.npmmirror.com喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。 有错误或者疑问还请评论指出。 我的个人网站 点击访问 hongw…

暑假时光的趣味新选择:《米小圈漫画历史》的魅力探秘

当暑假的炎炎夏日来临,许多家长都会面临一个共同的挑战:如何让孩子远离手机屏幕,找到既有趣又有教育意义的活动。作为一名父母,我被这个问题所困扰。看着孩子一整天沉浸在电子设备中,我深知这不仅会影响他们的视力&…

web程序员转大模型岗位,零基础入门到精通非常详细,收藏我这一篇就够了

从Web程序员转型到大模型岗位,需要掌握一系列新技能和知识。以下是一个详细的攻略: 了解大模型基础: 学习大模型的基本概念,如Transformer架构、自注意力机制等。 阅读相关论文,如“Attention is All You Need”等。 …

Debug-019-git reflog的两种使用场景

前情:最近在开发项目中对版本管理有了新的理解,感觉在这方面有了新的收获。同时学习了一个新的git指令:git reflog 实际了解之后,发现这个指令不是很常用,但是对于特定的场景的话它还是非常比较方便 这里我列举两种我…

使用 LangChain 开发 LLM 应用(3):记忆

注: 本文是基于吴恩达《LangChain for LLM Application Development》课程的学习笔记;完整的课程内容以及示例代码/Jupyter笔记见:LangChain-for-LLM-Application-Development; 课程大纲 目前 LLM 基本上都有最大 Token 的限制,即…

IEEE计算智能学会深圳分会线上讲座 22-01期: 金耀初教授的科研经验分享

IEEE计算智能学会深圳分会线上讲座 22-01期: 金耀初教授的科研经验分享_哔哩哔哩_bilibili 非限定性定语从句,使用逗号和which、动名词搭配使用, 尽量避免使用被动语态。 obviously- 使用clearly,apparently感觉上更好。 In this study/work 后面的交…

C++重载左移运算符

通过重载左移运算符&#xff0c;可以实现cout << p;直接输出类对象的各个属性。 其只能使用全局函数重载。 注意cout的定义如下&#xff1a; _EXPORT_STD extern "C" __PURE_APPDOMAIN_GLOBAL _CRTDATA2_IMPORT ostream cout; 也就是说我们一直用来输出的c…

VirtualFlow案例 | 油箱燃油晃动模拟,高效分析管路及油箱内油面变化

在探索流体行为模拟的领域&#xff0c;CFD技术为油箱燃油晃动模拟带来了革命性的转变。通过高精度的数值模拟&#xff0c;它不仅揭示了燃油在不同工况下的复杂动态&#xff0c;还为油箱设计的优化提供了关键洞察。这一技术在航空航天、汽车制造、船舶与海洋工程等多个行业中展现…