xhr、jQuery、axios、fetch、vue-resource简单了解和对比

1. xhr

  1. 不常用(太麻烦),一般进行二次封装,或者使用成型的第三方封装jQuery,axios等。axios和jQuery都是对xhr的封装。

2. jQuery

  1. 核心是封装Dom操作,80%的内容都是关于Dom的,Vue和React的使用是为了减少自己进行dom操作,所以没有必要引入jQuery, 多数且推荐使用axios。

3. axios

  1. 是promise风格的, 并且支持请求拦截件,和响应拦截器,体积小(大约是jQuery的1/4的体积),Vue和React项目中常用。

  2. 安装:npm i axios

  3. 使用:import axios from 'axios'

4. fetch

  1. 和xhr平级,都是js中内置的,可以直接使用的,也是promise风格的,缺点:返回数据会被包2层promise,得2次then才能拿到数据,最致命的是他的兼容性问题,不兼容IE浏览器,所以还是推荐axios。

5. vue-resource

  1. vue-resource早期Vue1.0时候使用较多,是Vue团队维护,后面交给了其他团队在维护,是Vue的一个插件库,也是对xhr的封装。目前维护的频率不高,所有还是推荐使用axios。

  2. 安装:npm i vue-rsource

  3. 使用:在main.js中引入和使用插件,然后全局可以使用this.$http.

    //引入Vue
    import Vue from 'vue'
    //引入App
    import App from './App.vue'
    //引入插件
    import vueResource from 'vue-resource'
    //关闭Vue的生产提示
    Vue.config.productionTip = false
    //使用插件
    Vue.use(vueResource)

    //创建vm
    new Vue({
    el:'#app',
    render: h => h(App),
    beforeCreate() {
    Vue.prototype.$bus = this
    },
    })

复制代码
<template>
	<div>
		<button @click="getStudents">获取学生信息</button>
	</div>
</template>

<script>
	export default {
		name:'App',
		methods: {
			getStudents(){
				this.$http.get('http://localhost:8080/students').then(
					response => {
						console.log('请求成功了',response.data)
					},
					error => {
						console.log('请求失败了',error.message)
					}
				)
			},
			
		},
	}
</script>
相关推荐
捡田螺的小男孩6 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员
IT_陈寒6 小时前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端
90后的晨仔6 小时前
uni-app 路由跳转与页面导航 —— 终极详解(对标 iOS / Android / 鸿蒙三端原生)
前端
Heo7 小时前
大厂前端调试不能只会debugger
前端·javascript·面试
用户2181697049307 小时前
Flutter (十七) 网络请求
前端
cidy_987 小时前
React 19 + Vite 企业级前端项目:从零搭建到规范交付
前端
用户921080262867 小时前
如何把一张图片做成自定义复杂 UI 图标
前端
用户938515635077 小时前
从 0 拆解一个 Next.js 笔记系统:npx、App Router、RSC 与组件规划全记录
前端·后端·全栈
hello93078 小时前
plop代码生成器
前端
windliang8 小时前
Claude Code 源码分析(十二):错误处理与自动恢复:让 Agent 稳定运行
前端·javascript·面试