一、前后端交互模式
1.1 接口调用方式
原生ajax
基于JQuery的ajax
fetch
axios
返回一个完整的HTML页面
也可以只返回特定格式的数据,比如json
1.2 URL地址格式
(1) 传统形式的URL
格式: schema://host:port/path?query#fragment
schema:协议。如http、https、ftp等
host:域名或IP地址
port:端口,http默认端口80
path:路径 例如/abc/a/b/c
query:查询参数 例如uname=lisi&age=12
fragment:锚点(哈希hash),用于定位页面的某个位置
符合规则的URL
http://www.itcast.cn
http://www.itcast.cn/java/web
http://www.itcast.cn/java/web?flag=1
http://www.itcast.cn/java/web?flag=1#function
(2) Restful形式的URL
HTTP请求方式
GET 查询
POST 添加
PUT 修改
DELETE 删除
符合规则的URL
http://www.hello.com/books GET
http://www.hello.com/books POST
http://www.hello.com/books/123 PUT
http://www.hello.com/books/123 DELETE
二、Promise 用法
2.1 异步调用
异步效果分析
定时任务 setTimeout setInterval
Ajax
事件函数
多次异步调用的依赖分析
多次异步调用的结果顺序不确定
嵌套调用结果如果存在依赖需要嵌套
2.2 Promise概述
Promise是异步编程的一种解决方案,从语法上讲。Promise是一个对象,从它可以获取异步操作的消息。
使用Promise主要有以下好处
可以避免多层异步调用嵌套问题(回调地狱)
Promise对象提供了简洁的API,使得控制异步操作更加荣哟
2.3 Promise 基本用法
实例化Promise对象,构造函数中传递函数,该函数用于处理异步任务
resolve和reject两个参数用于处理成功与失败两种情况,并通过p.then获取与处理结果
2.4 基于Promise处理Ajax请求
1. 处理原生Ajax
2. 发送多次ajax请求
2.5 then参数中的函数返回值
1. 返回Promise实例对象
返回的该实例对象会调用下一个then
2. 返回普通值
返回的普通值会直接传递给下一个then,通过then参数中函数的参数接收该值
2.6 Promise常用的API
1. 实例方法
p.then() 得到异步任务的正确结果
p.catch() 获取异常信息
p.finally() 成功与否都会执行
2. 对象方法
Promise.all() 并发处理多个异步任务,所有任务都执行完成才能得到结果
Promise.race() 并发处理多个异步任务,只要有一个任务完成就能得到结果
三、接口调用-fetch用法
3.1 fetch 概述
(1) 基本特性
更加简单的数据获取方式,功能更强大、更灵活,可以看做是xhr的升级版
基于Promise实现
(2) 语法结构
3.2 fetch的基本用法
.text();
3.3 fetch请求参数
(1) 常用配置选项
method(String):HTTP请求方法,默认为GET(POST、PUT、DELETE)
body(String):HTTP请求参数
headers(Object):HTTP的请求头,默认为{}
(2) GET请求方式的参数传递
(3) DELETE请求方式的参数传递
(4) POST请求方式的参数传递
(5) PUT请求方式的参数传递
3.4 fetch响应结果
响应数据格式
text(): 将返回体处理成字符串类型
json: 返回结果和JSON.parse(responseText)一样
四、接口调用-axios用法
4.1 axios 的基本特性
它具有以下特征
支持浏览器和node.js
支持Promise
能拦截请求和响应
自动转换JSON数据
4.2 axios 的基本用法
4.3 axios 的常用API
get: 查询数据
post: 添加数据
put: 修改数据
delete: 删除数据
4.4 axios 的参数传递
(1) GET传递参数
通过URL传递参数
通过params选项传递参数
(2) DELETE传递参数
参数传递方式与GET类似
(3) POST传递参数
通过选项传递参数(默认传递的是json格式的数据)
通过URLSearchParams传递参数(application/x-www/form/urlencoded)
(4) PUT传递参数
参数传递方式与POST类似
4.5 axios 的响应结果
响应结果的主要属性
(1) data: 实际响应回来的数据
(2) headers: 响应头信息
(3) status: 响应状态码
(4) status Text: 响应状态信息
 
4.6 axios 的全局配置
axios.defaults.timeout = 3000; // 超时事件
axios.defaults.baseURL = 'http://localhost:300/app'; // 默认地址
axios.defaults.headers['mytoken'] = 'aduhaiurhuh332341bhjiuh';// 设置请求头
 
4.7 axios拦截器
(1) 请求拦截器
在发出请求之前设置一些信息
 
(2) 响应拦截器
在获取数据之前对数据做一些加工处理
五、接口调用-async/await用法
5.1 async/await 的基本用法
async/await是ES7引入的新语法,可以更加方便的进行异步操作
async关键字用于函数上 (async函数的返回值是Promise实例对象)
await关键字用于async函数当中 (await可以得到异步的结果)
5.2 async/await 处理多个异步请求
多个异步请求的场景
六、基于接口的案例
需要调用接口的功能点
(1) 图书列表数据加载
(2) 添加图书
(3) 验证图书名称是否存在
(4) 编辑图书-根据ID查询图书信息
(5) 编辑图书-提交图书信息
(6) 删除图书

5.Vue前后端交互的更多相关文章

  1. 三、vue前后端交互(轻松入门vue)

    轻松入门vue系列 Vue前后端交互 六.Vue前后端交互 1. 前后端交互模式 2. Promise的相关概念和用法 Promise基本用法 then参数中的函数返回值 基于Promise处理多个A ...

  2. Flask + vue 前后端分离的 二手书App

    一个Flask + vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 ...

  3. Vue-CLI项目-axios模块前后端交互(类似ajax提交)

    08.31自我总结 Vue-CLI项目-axios前后端交互 一.模块的安装 npm install axios --save #--save可以不用写 二.配置main.js import axio ...

  4. vue前后端分离

    axios前后端交互 安装 一定要安装到`项目目录下 cnpm install axios 配置 在main.js中配置 //配置axios import axios from 'axios' Vue ...

  5. Vue - 与后端交互

    零:与后端交互 - ajax 版本1 - 出现了跨域问题 前端:index.html <!DOCTYPE html> <html lang="en"> &l ...

  6. 谷粒商城为什么要选择后天管理用vue前后端分离,而商城页面选择Thymeleaf类?

    1.最初使用jsp开发web项目 还记得刚学习Java的时候,自己开发一个web项目,那时候前后端分离还不流行,为了在页面中显示动态数据,最终的形式也就是以动态网页响应用户,Java一种技术jsp,J ...

  7. Vue之前后端交互

    Vue之前后端交互 一.前后端交互模式 接口调用方式 原生ajax 基于jQuery的ajax fetch axios 异步 JavaScript的执行环境是「单线程」 所谓单线程,是指JS引擎中负责 ...

  8. Node之简单的前后端交互

    node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...

  9. Django之META与前后端交互

    Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...

  10. 解决Django+Vue前后端分离的跨域问题及关闭csrf验证

      前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道   在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...

随机推荐

  1. hover状态下改变图片颜色的方式 悬停图片切换;css变量;悬停svg图片改变颜色;VUE

    由外部json文件,按照配置方式引入图片路径时,需要一些值得注意的语法来动态引入和改变图片 1.图片路径设置 ,按照img标签动态引入图片 <img src=''/> 路径不引入变量,此时 ...

  2. unity 变体 随手记

    1 #pragma multi_compile AAA BBB#pragma multi_compile CCC DDDAAA CCCAAA DDDBBB CCCBBB DDD------------ ...

  3. Maxim遍历测试工具(monkey升级版)

    Maxim 对应GitHub地址:https://github.com/zhangzhao4444/Maxim,其是对Android monkey的改进工具.是基于遍历规则和高性能要求. 条件准备: ...

  4. vue 收藏

    html: //收藏 <el-table-column prop="isOpen" label="">                 <te ...

  5. tidb配置haproxy

    1.安装haproxy wget https://www.haproxy.org/download/2.6/src/haproxy-2.6.2.tar.gz make clean make -j 8  ...

  6. PAT-basic-1022 D进制的A+B java

    一.题目 输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 D. 输出格式: ...

  7. 项目脚手架之webpack

      分享版本: webpackV4.X (企企项目PC端-webpack: 4.29.6.webpack-cli: 3.1.1) 分享初衷: 本文我们结合企企项目(下面相关代码片段主要取至我们项目) ...

  8. dota中的哲理

    战术和战略: 6k分和3k分玩家的最重要的区别不是英雄玩的不好,而是整体战略不明确. dota玩家游戏时长超过1000h的比比皆是,这些玩家里面分数差距相当大.高的7k往上,低的2k深坑爬不出来. 这 ...

  9. css3边框属性学习

    1.boder-radius <!DOCTYPE html> <html> <head> <meta charset="utf-8" /& ...

  10. python机器学习——PCA降维算法

    背景与原理: PCA(主成分分析)是将一个数据的特征数量减少的同时尽可能保留最多信息的方法.所谓降维,就是在说对于一个$n$维数据集,其可以看做一个$n$维空间中的点集(或者向量集),而我们要把这个向 ...