色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于OpenHarmony API9的axios組件介紹

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-08-19 15:11 ? 次閱讀

什么是axios

上古瀏覽器頁面在向服務器請求數據時,因為返回的是整個頁面的數據,頁面都會強制刷新一下,這對于用戶來講并不是很友好。并且我們只是需要修改頁面的部分數據,但是從服務器端發送的卻是整個頁面的數據,十分消耗網絡資源。而我們只是需要刷新頁面的部分數據,并不希望刷新整個頁面。于是一種新的技術,異步網絡請求Ajax(Asynchronous JavaScript and XML)隨之產生,它能與后臺服務器進行少量數據交換,使網頁實現異步更新。這意味著可以在不重載整個頁面的情況下,對網頁的某些部分進行更新。

然而由于瀏覽器中原生的XMLHttpRequest API較難使用,于是又有了更多用于實現ajax的javascript框架,比如我們熟悉的jQuery、Dojo、YUI等等。而如今一個叫axios的輕量框架逐步脫穎而出,目前在github的戰績已經達到了Fork9.6k+和Star94k+,它本質上也是對原生XHR的封裝,只不過它是Promise的實現版本,符合最新的ES規范,有以下特點:

● 從瀏覽器中創建 XMLHttpRequests

● 從 node.js 創建 http 請求

● 支持 Promise API

● 攔截請求和響應

● 轉換請求數據和響應數據

● 取消請求

● 自動轉換 JSON 數據

OpenHarmony應用中使用axios

我們可以看到axios既可以在瀏覽器中使用,又可以在Nodejs中使用,而如今隨著OpenHarmony ArkUI的發展,axios又有了新的用武之地,即在OpenHarmony標準系統的應用中使用:可用于網絡請求和上傳下載文件,并完全繼承axios原生的用法和所有特性。

對,你沒有看錯,axios確實是可以在OpenHarmony上使用了。下面簡單介紹下,如何在OpenHarmony應用中使用axios。

第一步:

在OpenHarmony標準系統的應用中下載安裝OpenHarmony axios三方組件。

npm install @ohos/axios –save

OpenHarmony npm環境配置等更多內容,參考安裝教程 如何安裝OpenHarmony npm包。

(https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md)

第二步:

在頁面中,引入axios。

import axios from "@ohos/axios";

第三步:

axios既可以當做函數直接使用發起異步請求,也可以當做對象,使用其get/post方法發起異步請求

作為函數直接發起post請求,通過promise獲取請求結果。

    let url = 'http://www.xxx.xxx';    axios({      method: "post",      url: url,      data:{        catalogName: "doc-references",        language: "cn",        objectId: "js-apis-net-http-0000001168304341",      }    })      .then(res => {        console.info('post result:' +JSON.stringify(res.data.value.breadUrl))      })      .catch(error => {        console.info('post error!')})
作為對象,使用其get/post方法發起異步請求

const test= axios.create({(                            baseURL:'http://xxxx'});test.get('/xxxx').then(response=>{})

axios攔截器

一般在使用axios時,會用到攔截器的功能,一般分為兩種:請求攔截器、響應攔截器。

● 請求攔截器 在請求發送前進行必要操作處理,例如添加統一cookie、請求體加驗證、設置請求頭等,相當于是對每個接口里相同操作的一個封裝;

● 響應攔截器 同理,響應攔截器也是如此功能,只是在請求得到響應之后,對響應體的一些處理,通常是數據統一處理等,也常來判斷登錄失效等。

fa3d20d8-1f7f-11ed-ba43-dac502259ad0.png

axios的攔截器作用非常大。axios的攔截器分為請求攔截器跟響應攔截器,都是可以設置多個請求或者響應攔截。每個攔截器都可以設置兩個攔截函數,一個為成功攔截,一個為失敗攔截。在調用axios.request()之后,請求的配置會先進入請求攔截器中,正常可以一直執行成功攔截函數,如果有異常會進入失敗攔截函數,并不會發起請求;調起請求響應返回后,會根據響應信息進入響應成功攔截函數或者響應失敗攔截函數。

舉個例子

1.添加請求攔截器

axios.interceptors.request.use(function (config) {    // 在發送請求之前做些什么    return config;  }, function (error) {    // 對請求錯誤做些什么    return Promise.reject(error);});
2.添加響應攔截器

axios.interceptors.response.use(function (response) {    // 對響應數據做點什么    return response;  }, function (error) {    // 對響應錯誤做點什么    return Promise.reject(error);});

axios上傳下載文件

使用axios還可以在OpenHarmony中上傳和下載文件,并獲取到上傳和下載的進度。

上傳文件:

import  axios from '@ohos/axios'import { FormData } from '@ohos/axios'
var formData = new FormData()formData.append('file', 'internal://cache/blue.jpg')
// 發送請求axios.post('http://www.xxx.com/upload', formData, {   headers: { 'Content-Type': 'multipart/form-data' },   context: getContext(this),   onUploadProgress number, total:number):void=> {      console.info(Math.ceil(uploadedSize/total * 100) + '%');   },}).then((res) => {   console.info("result" + JSON.stringify(res.data));}).catch(error => {   console.error("error:" + JSON.stringify(error));})
下載文件:

axios({   url: 'http://www.xxx.com/blue.jpg',   method: 'get',   context: getContext(this),   filePath: filePath ,   onDownloadProgress:  (receivedSize: number, total:number):void=> {       console.info(Math.ceil( receivedSize/total * 100 ) + '%');   },   }).then((res)=>{      console.info("result: " + JSON.stringify(res.data));   }).catch((error)=>{=      console.error(t"error:" + JSON.stringify(error));})
除以上特性之外,axios的默認配置,取消請求等特性都是可以在OpenHarmony上繼續使用的哈。另外,從npm官網上,可以看到有8000+的三方組件依賴axios,現在axios支持OpenHarmony后,更多的三方組件也將能在OpenHarmony上跑起來。

如何移植axios到OpenHarmony上運行的?

介紹了這么多axios的用法,相信前端的axios老粉們已經迫不及待地去體驗了吧。但是也許你會好奇,axios為啥能在OpenHarmony上運行?它不只是支持瀏覽器和Nodejs嗎?

這塊深入解讀的話,需要了解axios框架的實現原理。簡單來說,ohos/axios依賴開源社區axios三方組件,并根據axios現有的框架實現了ohadapter,即在OpenHarmony中適配網絡調用,對外暴露axios的原有對象,因此可以保障axios的api及特性都完全繼承。大家可以進一步到openharmony-tpc看下其源碼的實現。

如下圖,右邊藍色的是原生axios的開源社區,左邊綠色的是OpenHarmony axios三方組件,僅僅是實現了一個OpenHarmony的適配模塊,并未修改原生社區的一行代碼。

fa62970a-1f7f-11ed-ba43-dac502259ad0.png

總結

本期基于OpenHarmony API9的axios組件就為大家介紹到這,其源碼已開源在了“https://gitee.com/openharmony-sig/axios”,歡迎大家使用和提Issue。了解更多三方組件動態,請關注三方組件資源匯總,更多優秀的組件等你來發現!

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 瀏覽器
    +關注

    關注

    1

    文章

    1034

    瀏覽量

    35452
  • 函數
    +關注

    關注

    3

    文章

    4344

    瀏覽量

    62864
  • OpenHarmony
    +關注

    關注

    25

    文章

    3744

    瀏覽量

    16473

原文標題:網絡組件axios可以在OpenHarmony上使用了

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙開發實戰:網絡請求庫【axios

    [Axios]?,是一個基于 promise 的網絡請求庫,可以運行 node.js 和瀏覽器中。本庫基于[Axios]原庫v1.3.4版本進行適配,使其可以運行在 OpenHarmony,并沿用其現有用法和特性。
    的頭像 發表于 03-25 16:47 ?3991次閱讀
    鴻蒙開發實戰:網絡請求庫【<b class='flag-5'>axios</b>】

    在DevEco Studio上使用OpenHarmony API9 SDK的教程

    。選擇項目為OpenHarmony,分支為OpenHarmony-3.1-API9-SDK-Canary。 2、選擇所需要類型的SDK的全量包下載 二、將下載到的SDK目錄結構改造為符合Deveco
    發表于 04-20 11:05

    OpenHarmony SDK只支持API8和API9嗎?

    1、OpenHarmony SDK api版本只支持8和9么,真機是6種情況是不是不能使用openharmony調試了呢?2、HarmonyOS Legacy SDK 與
    發表于 04-26 10:57

    HarmonyOS和OpenHarmony的DevEco兩種IDE如何共存?

      用于 HarmonyOS 的 DevEco 和用于 OpenHarmony 的 DevEco 兩種IDE如何共存?  我用的是MacOS,不能同時安裝這兩個IDE,想現鮮API9就可以繼續開發,想繼續開發Harmony OS應用程序,只需安裝一個版本,然后可以共存,這
    發表于 05-09 11:07

    網絡組件axios可以在OpenHarmony上使用了

    模塊,并未修改原生社區的一行代碼??偨Y本期基于OpenHarmony API9axios組件就為大家介紹到這,其源碼已開源在了“https
    發表于 08-29 12:11

    HarmonyOS/OpenHarmony應用開發-API version 9繼承樣式

    說明:API version 9開始支持可以通過設置inherit-calss屬性來繼承父組件的樣式。自定義組件具有inherit-class屬性,定義如下:名稱類型默認值必填描述in
    發表于 03-23 09:33

    HarmonyOS/OpenHarmony應用開發-HUAWEI DevEco Studio 3.1API9集成SDK

    說明:適用api9及以上前提條件?安裝HUAWEI DevEco Studio 3.1及以上版本?配置 SDK API Version 9及以上?Compile SDK Version 9
    發表于 03-27 10:06

    OpenHarmony組件復用示例

    承載數據的差異。這樣的組件緩存起來,需要使用到該組件時直接復用, ● 減少了創建和渲染的時間,可以提高幀率和用戶性能體驗。本文會介紹開發OpenHarmony應用時如何使用
    發表于 08-29 14:40

    HarmonyOS/OpenHarmony原生應用開發-華為Serverless服務支持情況(三)

    文檔中的TS作者認為就是ArkTS之意。 一、云函數,從開發文檔上已經說明,是已經支持HarmonyOS/OpenHarmony(Stage模型-API9),但是在開發語言上,沒有ArkTS,是否
    發表于 10-12 14:43

    HarmonyOS/OpenHarmony原生應用開發-華為Serverless服務支持情況(四)

    /OpenHarmony(Stage模型-API9)應用開發的。 文檔地址: https://developer.huawei.com/consumer/cn/doc/development
    發表于 10-16 14:20

    2022 OpenHarmony組件大賽,共建開源組件

    原標題:共建開源組件生態 2022 OpenHarmony組件大賽等你來 2022年4月15日,2022 OpenHarmony組件大賽(下
    的頭像 發表于 04-26 17:31 ?1590次閱讀
    2022 <b class='flag-5'>OpenHarmony</b><b class='flag-5'>組件</b>大賽,共建開源<b class='flag-5'>組件</b>

    OpenHarmony PhotoView組件介紹

    PhotoView是OpenAtom OpenHarmony(簡稱“OpenHarmony”)系統的一款圖片縮放及瀏覽的三方組件,用于聲明式應用開發,支持圖片縮放、平移、旋轉等功能。
    的頭像 發表于 09-09 10:04 ?1208次閱讀

    關于OpenHarmony Jchardet組件介紹

    Jchardet是OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)系統的一款檢測文本編碼的組件。當上傳一個文件時,組件可以檢測并輸出該文件中文本使用的編碼
    的頭像 發表于 10-12 10:08 ?1024次閱讀

    OpenHarmony:使用網絡組件axios與Spring Boot進行前后端交互

    這兩個函數是使用axios庫發起HTTP GET請求的函數,用于與服務器進行通信
    的頭像 發表于 01-22 17:35 ?765次閱讀
    <b class='flag-5'>OpenHarmony</b>:使用網絡<b class='flag-5'>組件</b><b class='flag-5'>axios</b>與Spring Boot進行前后端交互

    基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony

    1、程序簡介該程序是基于OpenHarmony標準系統編寫的UI應用類:HelloOpenHarmony。本案例是基于API9接口開發。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發表于 09-15 08:09 ?459次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應用開發:Hello<b class='flag-5'>Openharmony</b>
    主站蜘蛛池模板: 国产在线一区二区AV视频| 乱奷XXXXXHD| 青青草视频在线ac| 中文字幕亚洲乱码熟女在线萌芽| 国产精品JIZZ视频免费| 色姣姣狠狠撩综合网| 超碰在线 视频| 日韩亚洲欧洲在线rrrr片| 春暖花开 性 欧洲| 三级色视频| 大稥焦伊人一本dao| 少妇伦子伦情品无吗| 国产精品久久久久久人妻香蕉 | 国产色婷婷精品人妻蜜桃成熟时| 翁公咬着小娇乳H边走边欢A| 国产午夜精品片一区二区三区 | 2022年国产精品久久久久| 蜜臀AV色欲A片无码一区| 99久久精品免费精品国产| 欧美怡红院视频一区二区三区| sao虎影院桃红视频在线观看| 欧美伊人久久大香线蕉综合69| 成人动漫bt种子| 小夫妻天天恶战| 久久精品国产色蜜蜜麻豆国语版| 总攻催眠受的高h巨肉np| 欧洲最大无人区免费高清完整版| 高潮久久久久久久久不卡| 白白操在线视频| 日本国产精品无码一区免费看| 俄罗斯freeⅹ性欧美| 亚洲 日韩 自拍 视频一区 | 自拍视频亚洲综合在线精品| 欧美三级在线完整版免费| 国产精品国产三级国产专区53| 亚洲精品国产第一区第二区| 久久亚洲精品中文字幕60分钟| yellow高清免费观看日本| 息与子在线交尾中文字幕| 久久麻豆国产国产AV| 成 人 片 免费播放 |