axios在vue中的使用,熬夜整理前端高频面试题

54 阅读7分钟

总结一下

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

开源分享:docs.qq.com/doc/DSmRnRG… 4)delete

2. axios并发请求

三、axios方法深入

1. 创建axios实例

2. 实例相关配置

3. 具体使用方法

4. axios拦截器

5. axios错误处理

6. axios取消请求


一、概述

========

1. Axios是什么?

Axios是一个基于promise的HTTP库;类似于jQuery的Ajax;用于HTTP请求

可以用于浏览器和node.js(客户端和服务端)

2. Axios有哪些特性?

支持Promise API;拦截请求和相应(再请求前和相应前做一些操作);转换请求数据和响应数据(数据加密,解密);取消请求;自动转换JSON数据;客户端支持防御XSRF攻击;

3. 创建项目

使用脚手架工具vue-cli创建项目axios-vue

安装axios(npm install axios)

并引入axios : import axios from 'axios'

二、axios方法的基本使用

==================

1. axios常用请求方法


(5种)get,post,put,patch,delete

get:获取数据(编辑)

post: 提交数据(表单提交+文件上传)

put: 更新数据 ( 所有数据推送到后端 )

patch: 更新数据(只将修改的数据推送到后端)

delete: 删除数据

post put patch很相似,都有两种数据格式:form-data,application

1)get

created() {

/* get方法的两种写法 */

axios.get('/data.json',{ // http://localhost:8080/data.json?id=12

params:{

id:12

}

}).then((res)=>{

console.log(res)

})

axios({

method:'get',

url:'/data.json', /* 相对于index.html */

params:{

id:12

}

}).then(res => {

console.log(res)

})

}

2)post

post三个参数:url路径,请求数据,config

请求数据的两种方法:

form-data 表单提交(图片文件上传)

application/json

let data = {

id:12

}

// application/json 两种写法

axios.post('/post',data).then(res =>{

console.log(res)

})

axios({

method: 'post',

url:'/post',

data: data

}).then(res =>{

console.log(res)

})

// form-data

let formData = new FormData()// 首先创建一个formData格式的数据

for(let key in data){

formData.append(key, data[key]) // 添加

}

axios.post('post',formData).then(res =>{

console.log(res)

})

3)put和patch

// put请求

axios.put('/put',data).then(res=>{

console.log(res)

})

// patch

axios.put('/patch',data).then(res=>{

console.log(res)

})

  

4)delete

axios.delete('/delete', { // 只有两个参数url,config

params:{ // 在url上显示

id: 12

}

}).then(res=>{

console.log(res)

})

axios.delete('/delete', { // 只有两个参数url,config

data:{ // 不在url上传输

id: 12

}

}).then(res=>{

console.log(res)

})

axios({

methos:'delete',

url:'/delete',

params:{},

data:{}

}).then(res=>{

console.log(res)

})

2. axios并发请求


使用场景:需要请求多个接口,同时处理返回值

axios.all()  参数是数组,里面是一个个ajax请求

axios.spread()  作用是在axios.all()多个请求完成之后,分割请求返回值,把返回数据进行处理

axios.all(

[

axios.get('/data.json'),

axios.get('/city.json')

]

).then( // 回调函数不同

axios.spread((dataRes,cityRes)=>{

console.log(dataRes,cityRes)

})

)

三、axios方法深入

===============

1. 创建axios实例


类似于数组创建的let arr = new Array()

后端接口地址有多个,并且超时试长不一样,用实例请求会很方便

let instance = axios.create({ // axios实例

baseURL: 'http://localhost:8080',

timeout: 1000

})

let axios2 = axios.create({ // axios实例

baseURL: 'http://localhost:9090',

timeout: 5000

})

instance.get('/data.json').then(res=>{

console.log(res)

})

axios2.get('/data.json').then(res=>{

console.log(res)

})

2. 实例相关配置


let instance = axios.create({ // axios实例

baseURL: 'http://localhost:8080',

// 请求的域名/基本地址。会默认把baseurl拼接在相对路径前面

timeout: 1000,

// 设置请求超时试长,单位:ms。超时会阻塞后端内容,因此设计超时时长会控制资源释放

url: 'data.json', // 请求的路径。

method: 'get', // post get patch put delete

headers:{

token:'' // token识别登录人员信息,需要传递给后端

}, // 设置请求头

params: {}, // 会将请求参数拼接在url上

data: {}, // 把请求参数放在请求体

})

优先级:全局配置 < 实例配置 < 请求配置

// 1.axios全局配置

axios.defaults.timeout = 1000

axios.defulat.baseURL = 'http://localhost:8080'

// 2.axios实例配置

let axios2 = axios.create()

axios2.defaults.timeout = 3000

// 3.axios请求配置

axios2.get('/data.json',{

timeout: 9000

}).then(res=>{

console.log(res)

})

3. 具体使用方法


有两种请求接口:http://localhost:9090 和 http://localhost:9091

let real = axios.create({

baseURL: 'http://localhost:9090',

timeout: 1000,

})

let real1 = axios.create({

baseURL: 'http://localhost:9091',

timeout: 3000,

})

// 实例1请求使用到了:baseURL timeout url method(get) params

real.get('/contactList',{

params:{}

}).then(res=>{

console.log(res)

})

// 实例2请求使用到了:baseURL timeout(修改5000) url method(get) params

框架相关

原生JS虽能实现绝大部分功能,但要么就是过于繁琐,要么就是存在缺陷,故绝大多数开发者都会首选框架开发方案。现阶段较热门是React、Vue两大框架,两者工作原理上存在共通点,也存在一些不同点,对于校招来说,不需要两个框架都学得特别熟,一般面试官会针对你简历中写的框架进行提问。

在框架方面,生命周期、钩子函数、虚拟DOM这些基本知识是必须要掌握的,在学习的过程可以结合框架的官方文档

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

Vue框架

知识要点: 1. vue-cli工程 2. vue核心知识点 3. vue-router 4. vuex 5. http请求 6. UI样式 7. 常用功能 8. MVVM设计模式

React框架

知识要点: 1. 基本知识 2. React 组件 3. React Redux 4. React 路由