从0到1完成一个Vue后台管理项目(五、登录页,mock,token,axios封装)

news2024/11/18 19:42:06

往期

从0到1完成一个Vue后台管理项目(一、创建项目)

从0到1完成一个Vue后台管理项目(二、使用element-ui)

从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库)

从0到1完成一个Vue后台管理项目(四、引入axios、配置路由)

从0到1完成一个Vue后台管理项目(五、登录页(表单校验的使用和封装))

mock

我们现在要请求接口了,那么如果我们不会后端技术,不会写接口的话,我们就可以去mock一些假的数据

mock文档地址:http://mockjs.com/0.1/#Mock

在这里插入图片描述

安装mock

cnpm install mockjs

建mock的文件夹
在这里插入图片描述

mock数据

import Mock from 'mockjs';
const vehicle = Mock.mock(
  '/api/login', 'post', (req, res) => {
    return {
      code: 200,
      data: [{
        id: 1,
        username: 'shaka',
      }],
      message: '登陆成功'
    }
  })
const user = Mock.mock(
  '/api/user', 'get', (req, res) => {
    return {
      code: 200,
      data: {
        id: 1,
        sex: 1,
        age: 25,
        createTime: '2017-04-01'
      },
      message: '查询成功'
    }
  })
export default {
  vehicle,
  user
}

在项目 的main.js中导入刚编辑的接口数据

import mockdata from "./mock"; 
//这样的话组件里就可以随意调用接口了

调用

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

token

我们封装一个专门用来操作token的方法

utils下建立setToken.js

在这里插入图片描述

在login.vue使用

在这里插入图片描述

axios二次封装

这里我们就不mock数据了,这里有真实的接口供大家使用

配置proxy

在vue.config.js配置proxy

在这里插入图片描述

service.js

我们创建一个service.js用来封装axios

在这里插入图片描述
代码

import axios from "axios";
import { getToken } from "./utils/setToken";
import { Message } from "element-ui";
const service = axios.create({
  baseURL: '/api',  //把前缀封装一下
  timeout: 3000 //请求超过这个时间就会中断
})


// 添加请求拦截器
service.interceptors.request.use((config) => {
  // 请求前的操作(获取并设置token)
  config.headers['token'] = getToken('token')
  return config
}, (error) => {
  return Promise.reject(error)
})
// 添加响应拦截器
service.interceptors.response.use((response) => {
  // 对响应数据做些什么
  let { status, message } = response.data
  if (status !== 200) {
    Message({ message: message || 'error', type: 'warning' })
  }
    return response
}, (error) => {
  return Promise.reject(error)
})


export default service

修改main.js

在这里插入图片描述

使用

在这里插入图片描述

在这里插入图片描述

封装请求接口api(api.js)

  1. src下创建api文件夹
  2. api文件夹下创建api.js
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

使用成功
做到了充分的解耦

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

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

相关文章

两大js调试工具的安装

首先要确保已经安装nodejs,具体安装步骤可以百度。 node-inspect工具的安装和使用 对于node-inspect工具我们可以全局安装: npm install node-inspect -g由于安装过cnpm,所以几乎在1秒内将node-inspect安装完成。 cnpm的安装方法&#xff…

Multisim14.0仿真应用举例——OCL电路输出功率和效率的研究

安装教程:http://t.csdn.cn/qvvqA一、理论讲解OCL全称: Output Capacitorless,中文名称:无输出电容的功率放大电路。功率放大带电路最重要的技术指标是最大输出功率Pom和效率η 。若输入信号Ui为正弦信号sin(wt),负载上能得到的最大输出电压且…

你是真的“C”——详解C语言实现静态版通讯录

详解C语言实现静态版通讯录😎前言😃通讯录设计的关键思想点分析 🙌通讯录界面(meun)设计 🙌增加信息功能实现代码🙌删除信息功能实现代码🙌查询信息功能实现代码🙌修改信…

【强训】Day04

努力经营当下,直至未来明朗! 文章目录一、选择二、编程1. 计算糖果2. 进制转换答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 下列与队列结构有关联的是() A 函数的递归调用 B 数组元素的引用 C 多重循环的执行…

【年终总结系列 2022】魔幻、疲惫、收获与成长

时光飞逝,转眼到了2022年的年末了。仿佛昨天还在看冬奥的开幕式,而第一次做核酸又似乎很遥远,生活像是一瞬间恢复了喧嚣,可能是三年之期已到吧。这一年于我们大众而言我愿称之为魔幻的一年,于我自己而言,则…

6.4 工具-RabbitMQ

目录 6.4.1 RabbitMQ概述 6.4.1.1 什么是RabbitMQ 6.4.1.2 Erlang和AMQP 6.4.1.3 RabbitMQ 6.4.1.3.1 RabbitMQ优点 6.4.1.3.2 应用解耦 6.4.1.3.3 异步处理 6.4.1.3.4 流量削峰 6.4.2 RabbitMQ安装 6.4.3 RabbitMQ架构 6.4.3.1 架构图 6.4.3.1.1 术语 6.4.3.1.…

MongoDB入门学习(二)GridFS、GridFS整合SpringBoot

文章目录GridFSGridFS简介GridFS存储原理GridFS整合SpringBoot新增store()查询与下载find()、findOne()删除delete()Demo案例GridFS GridFS简介 GridFS是MongoDB的一个用来存储/获取大型数据(图像、音频、视频等类型的文件)的规范。相当于一个存储文件…

Java中创建不可变集合、Stream流、异常体系、日志框架

创建不可变集合、Stream流、异常体系、日志框架创建不可变集合什么是不可变集合?为什么要创建不可变集合?如何创建不可变集合?不可变集合的特点?Stream流Stream流的概述Stream流的获取Stream流的常用API(中间操作方法&…

Index Tree(树状数组)

1、引入 线段树解决的是 区间查询 和 区间更新 的问题, O(logn)O(logn)O(logn) 复杂度。 人为规定:数组下标从 1 开始。 如果要计算数组某个范围 L 到 R 的累加和,那么可以准备一个前缀和数组 help,得到前缀和数组后&#xff0…

【寒假每日一题】洛谷 P6263 [COCI2014-2015#3] STROJOPIS

题目链接:P6263 [COCI2014-2015#3] STROJOPIS - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 正确的打字正成为文化的重要组成部分。如果你仍然没有使用所有的十根手指来打字,你必须重新学习打字——然后你会打字更快,感觉更舒适…

Web进阶:Day1 字体图标、平面转换、空间转换、动画

Web进阶:Day1 Date: October 3, 2022 Summary: 字体图标、平面转换、空间转换、动画 字体图标 字体图标 字体图标展示的是图标,本质是字体 处理简单的、颜色单一的图片 注:复杂的用CSS精灵,简单的用字体图标 字体图标的优点&…

Verilog语法笔记(夏宇闻第三版)-条件语句

目录 if_else语句: 五点说明: case语句: 真值表: ​例: ​由于使用条件语句不当在设计中生成了原本没想到有的锁存器: if_else语句: if语句是用来判定所给定的条件是否满足,…

(十四)面向对象的三大特征

目录 前言: 一、面向对象三大特征之一:封装 二、面向对象三大特征之二:继承 三、面向对象三大特征之三:多态 前言: 面向对象的三大特征:封装、继承、多态。 一、面向对象三大特征之一:封装 1.概述: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口…

使用Idea编码常用的28种技巧方式

一丶列表: 1丶查看代码历史版本 2丶调整idea的虚拟内存: 3丶idea设置成eclipse的快捷键 4丶设置提示词忽略大小写 5丶关闭代码检查 6丶设置文档注释模板 7丶显示方法分隔符 8丶设置多行tab 9丶快速匹配方法的大括号位置 10丶代码结尾补全 11丶模糊搜索方法 12丶预览…

用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载

用 Python selenium爬取实时股票新闻并存入mysql数据库中1.分析需求2.创建表3.分析需要爬取的网页内容4.python里面selenium进行爬虫操作1.添加包2.连接数据库3.selenium爬虫前配置4.对股票新闻内容爬取并存入mysql中5.翻页功能6.运行程序首先我们先明确我们的主要目标就是要爬…

5、SySeVR复现——Data preprocess(上)

目录 1、环境 2、生成切片对应的hash 3、获取要删除的切片位置信息 4、对切片进行token化 1、环境 从数据预处理开始,操作系统:windows 10 ,软件:pycharm 注:对官方提供的文件,做了一些改动&#xff0c…

插槽 slot

文章目录一、什么是插槽二、插槽内容三、渲染作用域四、默认内容五、具名插槽六、作用域插槽一、什么是插槽 我们使用 <slot> 作为一个占位符&#xff0c;父组件就可以把要传递的内容显示到占位符所在位置上&#xff0c;提高组件使用的灵活性。 二、插槽内容 父组件向…

安信可VC系列语音识别的使用教程

安信可VC-02语音识别的应用&#xff0c;本篇只讲述在Windows系统下的应用。Linux下的请参考官方文档介绍和说明。 1-安信可VC-02离线语音识别简介 VC系列模组是我司开发的一款AI离线语音识别的产品&#xff0c;主芯片是云知声推出的离线语音识别芯片锋鸟M(US516P6)&#xff0c…

Redis基础语法和SpringBoot集成使用

在初期&#xff0c;已经讲述了Redis安装问题。现在正式进入Redis的入门阶段。 Redis客户端 命令行客户端 redis-cli [options] [commands]常用到的 options 有&#xff1a; -h 127.0.0.1: 指定要连接的Redis的IP地址【默认127.0.0.1】-p 6379: 指定连接Redis的端口【默认63…

jenkins前端页面自动运维值yarn编译运行项目

配置步骤如下 首先需要在系统管理中心安装node相关插件 安装完成之后&#xff0c;在系统管理——>全局工具配置——>NodeJS 点击新增Nodejs 此处自定义别名&#xff0c;我这里是Nodejs16&#xff0c;取消自动安装前面的复选框&#xff0c;下方选择我们的nodejs安装目录&…