登录前端笔记(二):vuex管理用户数据;跨域;axios封装;环境;请求响应拦截;权限;用户资料Vuex共享

一、Vuex登录流程之用户模块:

在这里插入图片描述

简言之:点击登录调用actions且得到token,把得到的token提交给mutations从而修改state里的数据。
原视频

(1)Vuex用户模块流程

组件页面里点击登录后,调用stores里的actions,actions里调用登录接口成功后返回一个token值,使用vuex实现一个token数据多处共享(token数据先在state里声明数据初始化;然后vuex修改state里数据通过mutations里去声明一个方法setToken修改token,然后actions里调用登录接口后是要返回一个token假设值为123,此时调用setToken方法context.commit(‘setToken【也就是mutations的名字】’, ‘123【也就是token值】’)
在这里插入图片描述

(2)Vuex持久化问题:

页面刷新后token值又变为null(数据未被存储)
解决:设置token时同步到缓存里,然后从缓存里读取token初始值。(Vuex:state里从缓存中读取token初始值,mutations里同步token到缓存里)
获取、设置、删除token方法(类似localStorage都可以前端缓存数据)
在这里插入图片描述
在这里插入图片描述

二、Vuex登录流程之调用登录接口

在这里插入图片描述

(1)跨域

简言之,直接发送请求时跨域行为,会受到同源策略影响就会报错。所以直接发送请求要么后端做cors,要么前端做代理。此处为代理。
①浏览器同源策略:协议+主机+端口都一样
在这里插入图片描述
通过node向目标服务器发送请求,而同源策略只针对浏览器对浏览器之间,而node是服务器。
在这里插入图片描述
②配置vue-cli代理解决跨域问题
在这里插入图片描述

proxy的path地址为"/api":意思是发送的请求里只要携带/api就会把请求转为目标服务器,对象为目标服务器所存储的内容。属性target为代理的目标服务器地址;改完文件重启项目。
在这里插入图片描述
http://localhost:9528是axios会自动给url拼接上;因为代理配置了target内容所以会给url拼接target内容。
在这里插入图片描述

(2)axios封装

在这里插入图片描述
(1)基地址、超时时间
baseURL:基地址,axios设置一个基地址/api,其余请求可以不用再拼接这个地址/api;
在这里插入图片描述

timeout:超时时间,如果服务器在超时时间内没有响应,直接认定此次请求失败;
在这里插入图片描述

(2)请求
在这里插入图片描述

1)请求拦截器:注入token
把所有token都放在请求拦截器里去统一管理,这样每个请求都不需要再次传入token;
登录之后所有请求经过请求拦截器后都会携带token;

在这里插入图片描述

①axios里取token:用户模块部分,在stores里下的user即用户模块里管理token且持久化了token;所以可通过state.user.token获取token;
在这里插入图片描述
但stores里的getters可快速访问stores下modules里的app 与settings与 user里的属性;
在这里插入图片描述
所以直接getters.token,所以需要在axios里取到getters
在这里插入图片描述
不可以this.$stores.getters,因为this只可以在组件里的时候使用,this指的是组件实例,组件实例上挂载了$stores属性,但此时this不是组件实例是axios实例;

store 下的 index 文件将store进行export default 即实例是组件的里的this.$stores ,不用this直接引用store也可以使用:store.getters.token
在这里插入图片描述
在这里插入图片描述
请求头
在这里插入图片描述
测试:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)响应拦截器:是否成功
response有两个参数,一个成功一个失败;
①响应失败
失败的时候需要reject并且提示信息,return Promise.reject(err)终止错误;
error对象里提供了message属性即是错误信息,可以通过alert提示,但现在在使用elementUI ,它有一个message来提示信息;
在这里插入图片描述
不可以直接使用this.$message.warning,因为在组件里面this指的是组件实例,实例上挂载了$message,但此时this是axios实例;
用引用的方式解决,因为本身项目已经装elementUI,此时引用Message进来,它会按需去导出Message方法,此时的Message等同于this.$message
在这里插入图片描述
②响应成功
解构赋值:data、message、success
错误执行里才有error对象,此处没有所以new一个错误对象,错误对象提示信息就是message
在这里插入图片描述

在这里插入图片描述

(3)环境区分

原视频
在这里插入图片描述
①开发环境
在这里插入图片描述
②生产环境
npm run build:prod
在这里插入图片描述
在这里插入图片描述

(4)请求模块

在这里插入图片描述
封装请求模块
一定要return request因为会返回promise;
await写了一定要有async;
await代表一定会成功,失败时不需要考虑因为axios封装时有错误提示信息;
在这里插入图片描述
因为返回的promise是异步的,所以需要await代表一定是promise执行成功了(失败在axios里已经处理过),然后才能去跳转主页
在这里插入图片描述
判断是否是开发环境,是的话填手机号密码反之没有;
在这里插入图片描述

在这里插入图片描述

三、主页权限认证

在这里插入图片描述
(1)进度条
在这里插入图片描述
在这里插入图片描述
(2)如果有token
如果next里有地址不会执行后置守卫,需要手动关闭;
如果next里没有地址会执行后置守卫;
在这里插入图片描述

(3)如果没有token
白名单就是不需要token也可以访问的页面(whiteList);
在这里插入图片描述
总结
在这里插入图片描述

四、用户资料Vuex共享

原视频
在这里插入图片描述
①有token情况下调用action

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智慧油田智能安全管控方案-AI助力油气田安全管控升级

在科技日新月异的今天,万物纵横科技凭借其前沿的智慧油田智能安全管控方案,正引领着油气田行业向智能化、高效化转型。该方案深度融合了AI视频智能分析与AIoT(物联网人工智能)技术,为采油场、油气场的设备运维、环境监…

查缺补漏----Cache命中率与缺失率的判断

第一类问题对比: 块大小16B,int型数据占4B,所以一个Cache块可以放4个数组,所以访问1个数组,后面3个数组的地址可以在同一个Cache块找到。 一个数组要访问2次,即读这个数组,然后给这个数组赋值&a…

傅里叶变换(FT)与快速傅里叶变换(FFT)的区别

傅里叶变换(Fourier Transform, FT)和快速傅里叶变换(Fast Fourier Transform, FFT)都是用于信号频域分析的工具,但它们在计算方式和效率上存在显著的区别。下面小编将详细说明傅里叶变换和快速傅里叶变换的定义、原理…

MATLAB图像重心计算

图像重心(或质心)计算是计算机视觉和图像处理领域 应用领域广泛:包括医疗,生物,动画,机器人等。 该文章通过灰度转换->二值化->质心计算 以下是代码中涉及的一些数学概念和公式: 灰度转换&#xff1a…

离岗睡岗预警系统 值班室离岗识别系统Python 结合 OpenCV 库

在众多工作场景中,存在着一些特殊岗位,这些岗位对于人员的专注度和警觉性有着极高的要求。然而,离岗睡岗现象却时有发生,给工作的正常开展和安全保障带来了严重的威胁。本文将深入探讨特殊岗位离岗睡岗的危害,以及如何…

音乐播放器-0.专栏介绍​

1.简介 本专栏使用Qt QWidget作为显示界面,你将会学习到以下内容: 1.大量ui美化的实例。 2.各种复杂ui布局。 3.常见显示效果实现。 4.大量QSS实例。 5.Qt音频播放,音乐歌词文件加载,展示。 6.播放器界面换肤。 相信学习了本专栏…

【汇编语言】寄存器(内存访问)(六)—— 栈

文章目录 前言正文结语 前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤…

java集合进阶篇-《List集合》

个人主页→VON 收录专栏→java从入门到起飞 目录 ​编辑 一、前言 二、List集合简要概述 三、List集合主要函数的应用 四、List集合的遍历 五、思考 一、前言 List集合与Collection集合的相同之处还是挺多的,不过有些小细节又不太一样,其中有一个…

嵌入式学习-IO进程-Day04

嵌入式学习-IO进程-Day04 进程的函数接口 fork和Vfork 回收进程资源 wait waitpid 退出进程 获取进程号(getpid,getppid) 守护进程 守护进程的特点 创建步骤 exec函数族 线程 概念 线程和进程的区别 线程资源 线程函数接口 创建线程&#xff…

ASO优化手机游戏的秘密功能

在本文中,我们将尝试弄清楚手机游戏的 ASO 优化是否有任何特定功能。移动游戏在移动应用世界中占有特殊的地位,因为它们是最赚钱的细分市场。然而,今天,我们将关注的不是货币化,而是基础知识—文本和视觉优化、它们在游…

AI自动生成PPT哪个软件好?智能生成PPT不再熬夜做课件

大概这世上,都是职场牛马对“PPT”这三个字母的头痛反应最大吧! 是的,就连各个年级段的老师也是很头痛——愁着怎样能在排版整齐的情况下,将必考知识点都呈现在PPT每一张幻灯片页面里...... 近期打听到用人工智能生成ppt课件&am…

2024全国大数据与计算智能挑战赛火热报名中!

一年一度的 全国大数据与计算智能挑战赛震撼来袭! 报名速通: https://www.datafountain.cn/special/BDSSF2024 大数据与决策(国家级)实验室连续三年组织发起全国大数据与计算智能挑战赛,旨在深入挖掘大数据应用实践中亟…

基于模型预测控制(MPC)储能控制策略-多目标哈里斯鹰(MOHHO)算法的储能容量配置方法

目录 一、主要内容: 二、运行效果: 三、模型预测控制介绍: 四、多目标哈里斯鹰算法: 五、代码数据下载: 一、主要内容: 本研究旨在提出一种双层控制模型,结合模型预测控制(MPC…

2024年四非边缘鼠鼠计算机保研回忆(记录版 碎碎念)

Hi,大家好,我是半亩花海。写下这篇博客时已然是金秋十月,心中的石头终于落地,恍惚间百感交集。对于保研这条路,我处于摸着石头过河、冲击、随缘的这些状态。计算机保研向来比其他专业难,今年形势更是艰难。…

开发一个微信小程序要多少钱?

在当今数字化时代,微信小程序成为众多企业和个人拓展业务、提供服务的热门选择。那么,开发一个微信小程序究竟需要多少钱呢? 开发成本主要取决于多个因素。首先是功能需求的复杂程度。如果只是一个简单的信息展示小程序,功能仅限…

Pytest中fixture的scope详解

pytest作为Python技术栈下最主流的测试框架,功能极为强大和灵活。其中Fixture夹具是它的核心。而且pytest中对Fixture的作用范围也做了不同区分,能为我们利用fixture带来很好地灵活性。 下面我们就来了解下这里不同scope的作用 fixture的scope定义 首…

一图解千言,了解常见的流程图类型及其作用

在企业管理、软件研发过程中,经常会需要进行各种业务流程梳理,而流程图就是梳理业务时必要的手段,同时也是梳理的产出。但在不同的情况下适用的流程图又不尽相同。 本文我们就一起来总结一下8 种最常见的流程图类型 数据流程图 数据流程图&…

WordPress任推帮网盘拉新数据统计插件

任推邦是国内一线的APP推广项目分发和流量变现平台,隶属聚名科技集团(国家级高新技术企业、AAA重合同守信用企业,安徽百强企业),任推邦目前是阿里、字节、百度、迅雷、美团等品牌一级用户增长服务商,已入驻各类自媒体达…

基于Java的茶叶商城设计与实现(源码+定制+开发)茶叶电商系统开发、茶叶电商平台开发、茶叶在线销售平台设计与开发

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

利士策分享,新知速学,稳赚之道

利士策分享,新知速学,稳赚之道 在当今这个日新月异的时代,新知识、新技术如雨后春笋般层出不穷。 对于渴望在商海中稳操胜券的投资者而言,快速掌握新领域知识,并以此为基石赚取稳定收益,无疑是一项至关重…