vue3专栏项目 -- 四、前后端结合(上)

一、前后端分离是什么

前面我们一直在和静态数据打交道,虽然流程可以跑个半通,但是静态数据还是给我们造成了诸多不便,现在我们是时候用上后端了。

现在的应用开发模式,自从SPA出现以后,前端和后端可以平行的进行对应的工作,然后再进行接口的联调和整合,这种开发方式就是前后端分离开发。

二、什么是RESTful API

HTTP动词:

· GET(select):从服务器取出资源(一项或多项)

· POST (create):在服务器新建一个资源

· PUT (update):在服务器更新资源

· PATCH (update):在服务器更新资源

· DELETE(delete):从服务器删除资源

三、接口文档

1、接口文档需要包括的点

· endpoints:具体路径

· 使用什么样的method?

· 发送请求的具体参数

· 请求返回的数据格式

2、swagger 的出现

文档规范,我们这个项目看 api.vikingship.xyz 就可以看到这个专栏项目的swagger

有了这个swagger文档,我们就可以很方便的在界面中了解和把玩现在所有的API了,它给前后端工程师都带来了很多的便利

接下来我们把这些写好的后端API在项目中使用,在应用中展示这些数据

四、axios的基本用法

安装axios:npm install axios --save

安装完毕之后我们就可以使用了,如下尝试,注意后端接口API:apis.imooc.com/api/并且添加上icode这个参数,如下已成功返回数据,说明我们的接口已经跑通啦

前面 http://apis.imooc.com/api 可以避免重复,如下,axios给我们提供了axios.default.baseUrl

后面这个icode我们也可以如下,axios提供了Interceptors,称为拦截器,我们来看看怎么用

那会不会影响我们其他参数的添加呢,如下,发现不会影响

上面是测试,最终我们main.ts中如下

五、使用vuex action 发送异步请求

之前我们专栏列表逻辑是从testData中读数据然后展示在界面上,testData是我们自己造的一些数据。现在有了后端接口,我们就多了一步发送请求,获取数据,最后展示页面的过程。

我们需要添加新的mutation,触发数据变化,但是文档中写了mutation有一个特殊的规则,就是mutation必须是同步函数,而axios请求是异步请求,vuex提出了一个新的概念来替换这个名字即Action,Action类似于mutation,不同点在于,Action可以提交的是mutation,而不是直接变更状态,Action可以包含任意异步操作

如下,vuex中引入axios,然后添加actions,在actions中定义一个函数,函数中axios请求专栏列表数据,请求回来后通过commit调用mutations,然后在mutations中定义一个函数,在函数中把获取回来的专栏列表数据赋值给store中的专栏列表数据属性中

然后我们在页面中调用这个actions即可,如下,在组件挂载的时候调用,通过dispatch调用action,即如下atore.dispatch(‘actions中的函数’)

如下,发现可以获取到数据了,但是图片出现了问题

是因为返回的数据中头像图片avator是对象,所以要修改类型啥的。

因为返回的数据结构和我们之前定的有出入,所以我们需要进行修改一下,如下

主要就是看接口文档中这些返回数据的类型是什么样,进行对应调整即可

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

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

相关文章

智慧法治:AI技术如何赋能法律行业创新

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

AI绘画动漫转真人详细教程

从小到大,我们看过的动漫、玩过的游戏有很多很多 但我们会发现里面的角色或者人物都是二次元的 我就会好奇这些动漫人物在现实中会长什么样 而现在,我们通过AI绘画竟然就能还原出来他们现实中的样子 除了动漫角色和游戏人物,古代的画像、经典…

【笔记】从零开始做一个男性人体的流程/躯干篇(超级详细)

躯干整体 大体 1.创建一个正方体,摆好位置 2.实例呀啥的都搞好 3.胸部它是一个前窄后宽的结构 斜方肌 臀部 1.臀部是前宽后窄的结构 2.我们再去侧面调整以下 胸椎向上倾斜,盆骨向下倾斜。脊椎是s形的 3.真实的身体没有这么方正,所以微调…

3kCTF2021 echo klibrary

文章目录 前言echoklibrary 前言 今天状态不好,很多事情都不想干,就做一做简单的题目 echo 内核版本:v5.9.10smap/smep/kaslr 开启modprobe_path 可写 题目给了源码,非常简单就是无限次的任意地址读写: #include …

Lombok注解详解

文章目录 注解详解lombok包下注解汇总- Getter- Setter- ToString- EqualsAndHashCode- Data- Value- NonNull- NoArgsConstructor- AllArgsConstructor- RequiredArgsConstructor- Builder- Synchronized- Cleanup- Singular- Generated- SneakyThrows- val- var experimental…

pwn(安装环境)

从安装虚拟机开始 1.先安装vmware 详细教程: VMware下载安装教程(超详细)-CSDN博客 2.然后下载虚拟机镜像文件 进入下面这个链接下载 Get Kali | Kali LinuxHome of Kali Linux, an Advanced Penetration Testing Linux distribution used for Penetration Te…

Linux安装配置CGAL,OpenCV和Gurobi记录

安装Qt,查看当前的Qt版本,需要至少满足v5.12 qmake -v安装CGAL,The Computational Geometry Algorithms Library (cgal.org) CGAL v5.6.1:https://github.com/CGAL/cgal/releases/download/v5.6.1/CGAL-5.6.1.tar.xz 确保C编译…

5款可用于LLMs的爬虫工具/方案

5款可用于LLMs的爬虫工具/方案 Crawl4AI 功能: 提取语义标记的数据块为JSON格式,提供干净的HTML和Markdown文件。 用途: 适用于RAG(检索增强生成)、微调以及AI聊天机器人的开发。 特点: 高效数据提取,支持LLM格式,多U…

改变浏览器大小,图片(img)内容居中显示img标签,不是背景图

改变浏览器大小,图片&#xff08;img&#xff09;内容居中显示&#xff0c;img标签&#xff0c;不是背景图 效果直接上图&#xff1a; 上代码&#xff1a; <!DOCTYPE html> <html> <head><title>测试图片居中显示&#xff0c;高度不变只变宽度<…

HCIP【BGP综合实验】

目录 一、实验拓扑图&#xff1a; 二、实验要求&#xff1a; 三、实验思路&#xff1a; 四、实验步骤&#xff1a; 1、进行网段的子网划分&#xff08;整个实验总共有19条网段&#xff09;&#xff1a; (1)首先&#xff0c;根据实验要求&#xff0c;将172.16.0.0/16全部划…

C语言学习(九)多文件编程 存储类型 结构体

目录 一、多文件编程&#xff08;一&#xff09;不写头文件的方方式进行多文件编程 &#xff08;二&#xff09;通过头文件方式进行多文件编程&#xff08;1&#xff09;方法&#xff08;2&#xff09;头文件守卫 &#xff08;三&#xff09; 使用多文件编程实现 - * / 功能 二…

系统设计中的泛化调用

背景 目前在学习一些中间件&#xff0c;里面看到了一个词是叫泛化调用&#xff0c; 其实这个场景在JAVA中比较常见。我们常用的有反射&#xff0c;反射就是我知道类名称、类方法和参数&#xff0c;调用一个Object的类&#xff0c;但是在HTTP或者RPC远程调用过程中&#xff0c;…

服务异步通讯MQ

同步调用存在的问题: 异步调用方案: RabbitMQ安装: 第一种:在线拉取 docker pull rabbitmq:3-management 第二种:将已有的安装包放入再用load加载 我这里放到tmp包里边 然后:cd /tmp docker load -i mq.tar 加载进去 然后运行mq容器 docker run \-e RABBITMQ_DEFAULT_USER…

【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”

看到这句话的时候证明&#xff1a;此刻你我都在努力~ 加油陌生人~ 个人主页&#xff1a; Gu Gu Study ​​ 专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努…

下水道井盖多分类检测定位

下水道井盖识别&#xff0c;多分类&#xff0c;使用yolov5训练&#xff0c;采用一部分开源数据集和自建数据集。python pytorch opencv 深度学习#人工智能#深度学习#目标检测

在STM32中用寄存器方式点亮流水灯

文章目录 实验资料一、对寄存器的理解1.通俗认识寄存器2.深入了解寄存器&#xff08;1&#xff09;端口配置低寄存器&#xff08;配置0到7引脚的寄存器&#xff09;&#xff08;2&#xff09;端口配置高寄存器&#xff08;配置8到15引脚&#xff09; 3.GPIO口的功能描述 二、配…

Git Bash和Git GUI设置中文的方法

0 前言 Git是一个分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。一般默认语言为英文&#xff0c;本文介绍修改Git Bash和Git GUI语言为中文的方法。 1 Git Bash设置中文方法 &#xff08;1&#xff09;鼠标右键&#xff0c;单击“Git B…

时间复杂度的简单讲解

小伙伴们大家好&#xff0c;我们又见面了&#xff0c;这次我们直接进入正题 时间复杂度的概念 时间复杂度的定义&#xff1a;在计算机科学中&#xff0c; 算法的时间复杂度是一个函数 &#xff0c;它定量描述了该算法的运行时间。一 个算法执行所耗费的时间&#xff0c;从理论…

公有云Linux模拟TCP三次挥手与四次握手(Wireshark抓包验证版)

目录 写在前面环境准备实验步骤1. 安装nc工具2. 使用nc打开一个连接2.1 公有云-安全组放行对应端口&#xff08;可选&#xff09; 3. 打开Wireshark抓包工具4. 新开终端&#xff0c;进行连接5. 查看抓包文件&#xff0c;验证TCP三次握手与四次挥手TCP三次握手数据传输TCP四次挥…

【C++杂货铺铺】AVL树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 概念 &#x1f4c1; 节点的定义 &#x1f4c1; 插入 &#x1f4c1; 旋转 1 . 新节点插入较高左子树的左侧---左左&#xff1a;右单旋 2. 新节点插入较高右子树的右侧---右右&#xff1a;左单旋 3. 新节点插入较高左…