Vue--第十天

终极实战----大事件项目

1.简介:

2.创建项目:

1.创建(159-163):

还是对着视频操作吧

2.路由:

3.element Plus:

导入element Plus 后不需要再导入插件配置,就连组件导入也不用

4.pinia构建用户仓库和持久化:

持久化:

单独管理和导出:

5.数据交互-请求工具设计:

配置:

import axios from 'axios'

import {ElMessage} from 'element-plus'

import router from '@/router'

import { useUserStore } from '@/store'

const baseURL = 'http://big-event-vue-api-t.itheima.net'

const instance = axios.create({

  baseURL,

  timeout: 5000,

  headers: { 'X-Custom-Header': 'foobar' }

})

// 请求拦截器

instance.interceptors.request.use(

  (config) => {

    // TODO 2. 携带token

    const userStore = useUserStore()

    if (userStore.token) {

      config.headers.Authorization = userStore.token

    }

    return config

  },

  (err) => Promise.reject(err)

)

// 响应拦截器

instance.interceptors.response.use(

  (res) => {

    // TODO 3. 处理业务失败

    // TODO 4. 摘取核心响应数据

    if (res.data.code === 0) {

      return res

    }

    ElMessage.error(res.data.message || '服务异常')

    // 处理业务失败,给错误提示,异常抛出

    return Promise.reject(res.data)

  },

  (err) => {

    // TODO 5. 处理401错误

    // 错误的特殊情况 => 401 权限不足 或 token 过期  => 拦截到登录

    if (err.message?.status === 401) {

      router.push('/login')

    }

    // 错误的默认情况 => 只要给提示

    ElMessage.error(err.response.data.message || '服务异常')

    return Promise.reject(err)

  }

)

export default instance

// 其实这里导出基础路由我不是很理解

export { baseURL }

6.整体路由设计:

7.登录页加载:

8.校验:

9.预校验:

注意:在我们开始导入组建的时候,我们是按需导入的,所以我们不用在第二次在页面中导入。像这种做法就是错的。

我们可以这么做:再eslintrc中声明全局变量,解决ElMesage报错问题

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探讨二维半导体的概念、应用前景及其与传统半导体的差异

当探讨二维半导体时,我们置身于科技革新的前沿。这种材料以其纳米级薄度和独特电学性质区别于传统半导体,引发了科学界的广泛兴趣。本文将深入探讨二维半导体的概念、应用前景及其与传统半导体的差异。 什么是二维半导体? 二维半导体是由单…

Trouble Shooting:ORA-08104

背景:业务人员在rebuild索引期间强制中断了会话,再次rebuild报错 ORA-08104。 有其他会话在使用该索引,并未提交也会造成一样问题。 问题处理: 方法一、 用dbms_repair.online_index_clean来清除创建索引的失败的遗留 注意&…

【EI会议征稿】第三届能源动力与控制工程国际学术会议(EPECE 2024)

第三届能源动力与控制工程国际学术会议(EPECE 2024) The 3rd International Conference on Energy and Power Engineering, Control Engineering (EPECE 2024) 第三届能源动力与控制工程国际学术会议(EPECE 2024)将于2024年2月2…

redis.conf配置bind 127.0.0.1注释,允许远程访问

bind 127.0.0.1这个是绑定了我们的主机地址,意思是只允许我们主机访问redis,这句话注销掉,因为我们需要远程访问

如何解决浏览器提示“SSL协议未开启”?

SSL协议未开启是指服务器中的服务没有开启或者没有SSL模块造成的。 解决方案:打开浏览器,如图所示,找到工具→Internet选项;找到高级选项卡下面的使用 SSL 3.0 勾选之后点击保存即可。 (图片来源于网络,如涉及侵权请告…

ERP真的“烂”吗?为什么有些公司上了ERP效率反而更低?

ERP是由美国Gartner Group咨询公司首先提出的国际上最先进的企业管理模式之一,也是企业信息化集成的最佳解决方案。 ERP到底是什么? ERP的概念 先打个比方。 把ERP理解成手机。 使用通讯类APP和同事、朋友、亲人交流。 使用购物类APP购买生活工作中需…

洛谷 P8794 [蓝桥杯 2022 国 A] 环境治理

文章目录 [蓝桥杯 2022 国 A] 环境治理题目链接题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路解析CODE给点思考 [蓝桥杯 2022 国 A] 环境治理 题目链接 https://www.luogu.com.cn/problem/P8794 题目描述 LQ 国拥有 n n n 个城市,从 0 0 …

A01、深入了解性能优化

1、常用性能评价/测试指标 1.1、响应时间 提交请求和返回该请求的响应时间之间使用的时间,一般比较关注平均响应时间。常用操作的响应时间列表: 操作响应时间打开一个站点几秒数据库查询一条记录(有索引)十几毫秒机械磁盘一次寻…

JavaScript基础(数组+正则表达+字符串)

目录 1.数组 1.1创建数组 1.2字面量创建数组 1.3length函数 1.4遍历数组1 1.5遍历数组2语法糖 1.6增删改查 1push 2pop 3unshift("x",x) 4shift() 5数组的截取 slice() splice() 6concat 7reverse 2.内置对象 2.1data 2.2Math对象 2.3字符串 1c…

Android用户目前面临的六大安全威胁​

如今,各种出色的Android设备已能让我们无缝地利用生活中的碎片时间,开展各类工作、娱乐、创作、以及交流等活动。不过,目前随着越来越多的安全威胁在我们没注意到或看不见的角落里暗流涌动,时常会危及我们的数据、隐私、甚至是And…

「Vue3面试系列」Vue3.0的设计目标是什么?做了哪些优化?

文章目录 一、设计目标1.1 更小1.2 更快1.3更友好 二、优化方案2.1 源码2.11源码管理2.22 TypeScript 2.2 性能2.3 语法 API2.31逻辑组织2.32 逻辑复用 参考文献 一、设计目标 不以解决实际业务痛点的更新都是耍流氓,下面我们来列举一下Vue3之前我们或许会面临的问…

做题总结 242. 有效的字母异位词

242. 有效的字母异位词 我的答案思路优化出错的知识点(Java)1、String相关(1)String转换成char数组(2)String不能直接用下标访问 2、HashMap 相关(1)初始化(2&#xff09…