最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue為何棄用Ajax,選擇Axios?ajax與axios的區(qū)別?

 更新時間:2023年01月27日 12:53:40   投稿:yin  
ajax技術(shù)實現(xiàn)了局部數(shù)據(jù)的刷新,axios實現(xiàn)了對ajax的封裝;axios有的ajax都有,ajax有的axios不一定有??偨Y(jié)一句話就是axios是ajax,ajax不止axios。

axios是通過Promise實現(xiàn)對ajax技術(shù)的一種封裝,就像jquery對ajax的封裝一樣,axios回來的數(shù)據(jù)是promise,ajax回來的數(shù)據(jù)是回調(diào),axios比ajax更好用更安全。簡單來說就是ajax技術(shù)實現(xiàn)了局部數(shù)據(jù)的刷新,axios實現(xiàn)了對ajax的封裝;axios有的ajax都有,ajax有的axios不一定有。總結(jié)一句話就是axios是ajax,ajax不止axios。

一、ajax與axios前言

發(fā)送網(wǎng)絡(luò)請求的方式有很多,下面來簡單介紹一下:

1、傳統(tǒng)的Ajax是基于XMLHttpRequest(XHR)

2、jQuery - Ajax

為什么不適用jQuery的Ajax?

在vue開發(fā)中不需要使用jQuery,因為jQuery很重量級。

3、vue官方在Vue1.x的時候,推出了Vue-resource。

Vue-resource角jQuery輕便很多,但在vue2.x之后,尤雨溪對Vue-resource不維護了,簡言之,就是棄用了。

4、尤雨溪推薦使用axios。

二、ajax與axios的區(qū)別

傳統(tǒng) Ajax 指的是 XMLHttpRequest(XHR), 最早出現(xiàn)的發(fā)送后端請求技術(shù),隸屬于原始js中,核心使用XMLHttpRequest對象,多個請求之間如果有先后關(guān)系的話,就會出現(xiàn)回調(diào)地獄。
JQuery ajax 是對原生XHR的封裝,除此以外還增添了對JSONP的支持。經(jīng)過多年的更新維護,真的已經(jīng)是非常的方便了,優(yōu)點無需多言;如果是硬要舉出幾個缺點,那可能只有:

  • 本身是針對MVC的編程,不符合現(xiàn)在前端MVVM的浪潮
  • 基于原生的XHR開發(fā),XHR本身的架構(gòu)不清晰。
  • JQuery整個項目太大,單純使用ajax卻要引入整個JQuery非常的不合理(采取個性化打包的方案又不能享受CDN服務(wù))
  • 不符合關(guān)注分離(Separation of Concerns)的原則
  • 配置和調(diào)用方式非常混亂,而且基于事件的異步模型不友好。

Vue2.0之后,尤雨溪推薦大家用axios替換JQuery ajax,想必讓axios進入了很多人的目光中。axios 是一個基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端,本質(zhì)上也是對原生XHR的封裝,只不過它是Promise的實現(xiàn)版本,符合最新的ES規(guī)范,它本身具有以下特征:

  • 從瀏覽器中創(chuàng)建 XMLHttpRequest
  • 支持 Promise API
  • 客戶端支持防止CSRF
  • 提供了一些并發(fā)請求的接口(重要,方便了很多的操作)
  • 從 node.js 創(chuàng)建 http 請求
  • 攔截請求和響應(yīng)
  • 轉(zhuǎn)換請求和響應(yīng)數(shù)據(jù)
  • 取消請求
  • 自動轉(zhuǎn)換JSON數(shù)據(jù)

三、Vue中axios的使用

一、發(fā)送并發(fā)請求

有的時候,會同時發(fā)送多個請求。

使用axios.all,可以放入多個請求的數(shù)組。

axios.all([])返回的是一個數(shù)組,使用axios.spread可以將數(shù)組[res1,res2]展開為res1和res2。

import axios from 'axios'

export default {
	name: 'app',
	created(){
		axios.all([axios.get('http://127.0.0.1:8080/getUserList'),
					axios.get('http://127.0.0.1:8080/getUserPage',{
						params: {pageNum: 1, pageSize: 10}
					})
		]).then(axios.spread((res1,res2) => {
			console.log(res1)
			console.log(res2)
		}))
	}
}

二、全局配置

import axios from 'axios'

export default {
	name: 'app',
	created(){
		// 提取全局配置
		axios.defaults.baseURL = 'http://127.0.0.1:8080'
		
		axios.all([axios.get('/getUserList'),
					axios.get('/getUserPage',{
						params: {pageNum: 1, pageSize: 10}
					})
		]).then(axios.spread((res1,res2) => {
			console.log(res1)
			console.log(res2)
		}))
	}
}

三、創(chuàng)建axios實例

const instance1 = axios.create({
  baseURL: 'http://127.0.0.1:8080',
  timeout: 5000
})

instance1({
  url: '/home/getUserList'
}).then(res => {
  console.log(res);
})

instance1({
  url: '/home/getUserPage',
  params: {
    type: 'pop',
    page: 1
  }
}).then(res => {
  console.log(res);
})


const instance2 = axios.create({
  baseURL: 'http://127.0.0.1:8081',
  timeout: 10000,
  // headers: {}
})

四、總結(jié)

Axios 是一個基于 Promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中;是請求資源的模塊;通過promise對ajax的封裝。
簡單理解為:封裝好的、基于promise的發(fā)送請求的方法,因此不用設(shè)置回調(diào)函數(shù),直接去調(diào)用then方法。
屬性:url、method、data、responseType、.then、.catch…

axios是一個基于promise 的 http庫,主要實現(xiàn) ajax異步通信功能,用于向后端發(fā)起請求,還有在請求中做更多是可控功能;ajax是對原生XHR的封裝;axios實現(xiàn)對 ajax封裝,ajax實現(xiàn)局部數(shù)據(jù)的刷新;

到此這篇關(guān)于Vue為何棄用Ajax,選擇Axios?ajax與axios的區(qū)別的文章就介紹到這了,更多相關(guān)Vue中的Axios內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue語法和標簽的入門使用教程

    Vue語法和標簽的入門使用教程

    Vue是一套用于構(gòu)建用戶界面的漸進式框架,下面這篇文章主要給大家介紹了關(guān)于Vue語法和標簽使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • vue+vant實現(xiàn)購物車全選和反選功能

    vue+vant實現(xiàn)購物車全選和反選功能

    這篇文章主要為大家詳細介紹了vue+vant實現(xiàn)購物車全選和反選功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解VS Code使用之Vue工程配置format代碼格式化

    詳解VS Code使用之Vue工程配置format代碼格式化

    這篇文章主要介紹了詳解VS Code使用之Vue工程配置format代碼格式化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 你不可不知的Vue.js列表渲染詳解

    你不可不知的Vue.js列表渲染詳解

    這篇文章主要給大家介紹了關(guān)于你不可不知的Vue.js列表渲染的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Vue.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue條件渲染列表渲染原理示例詳解

    vue條件渲染列表渲染原理示例詳解

    這篇文章主要為大家介紹了vue條件渲染列表渲染原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • WebPack配置vue多頁面的技巧

    WebPack配置vue多頁面的技巧

    這篇文章主要介紹了WebPack配置vue多頁面的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • Vue接入高德地圖的完整實例

    Vue接入高德地圖的完整實例

    近期在用vue做一個環(huán)保類的項目,要求使用高德地圖,下面這篇文章主要給大家介紹了關(guān)于Vue接入高德地圖的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • vue v-for循環(huán)出來的數(shù)據(jù)動態(tài)綁定值問題

    vue v-for循環(huán)出來的數(shù)據(jù)動態(tài)綁定值問題

    這篇文章主要介紹了vue v-for循環(huán)出來的數(shù)據(jù)動態(tài)綁定值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue中css如何使用data中的變量

    vue中css如何使用data中的變量

    這篇文章主要介紹了vue中css如何使用data中的變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue3中從一個頁面(index)傳輸數(shù)值到另一個頁面(form)的方法詳解

    Vue3中從一個頁面(index)傳輸數(shù)值到另一個頁面(form)的方法詳解

    在 Vue 3 開發(fā)中,經(jīng)常需要在不同組件或頁面之間傳遞數(shù)據(jù),例如從 index 頁面獲取某個數(shù)值(如 cntr、tradeId)后,將其傳輸?shù)?nbsp;form 頁面進行填寫或編輯,本文將介紹幾種常見的數(shù)據(jù)傳輸方法,并為每種方法提供一個小的 Demo 代碼示例,需要的朋友可以參考下
    2025-02-02

最新評論

南昌市| 彭阳县| 中西区| 榆中县| 平塘县| 桓台县| 通道| 来宾市| 牙克石市| 夹江县| 乌审旗| 南康市| 绵竹市| 大邑县| 老河口市| 镶黄旗| 泽州县| 寻乌县| 宜都市| 广东省| 通河县| 永定县| 博爱县| 嫩江县| 托克逊县| 湟中县| 阿拉尔市| 景德镇市| 宝应县| 开原市| 恭城| 澄迈县| 周口市| 宜阳县| 岳普湖县| 金塔县| 巧家县| 莱阳市| 图木舒克市| 岗巴县| 桦南县|