日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內(nèi)不再提示

基于OpenHarmony API9的axios組件介紹

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-08-19 15:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是axios

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

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

● 從瀏覽器中創(chuàng)建 XMLHttpRequests

● 從 node.js 創(chuàng)建 http 請求

● 支持 Promise API

● 攔截請求和響應

● 轉(zhuǎn)換請求數(shù)據(jù)和響應數(shù)據(jù)

● 取消請求

● 自動轉(zhuǎn)換 JSON 數(shù)據(jù)

OpenHarmony應用中使用axios

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

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

第一步:

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

npm install @ohos/axios –save

OpenHarmony npm環(huán)境配置等更多內(nèi)容,參考安裝教程 如何安裝OpenHarmony npm包。

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

第二步:

在頁面中,引入axios。

import axios from "@ohos/axios";

第三步:

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

作為函數(shù)直接發(fā)起post請求,通過promise獲取請求結(jié)果。

    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方法發(fā)起異步請求

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

axios攔截器

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

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

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

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

axios的攔截器作用非常大。axios的攔截器分為請求攔截器跟響應攔截器,都是可以設(shè)置多個請求或者響應攔截。每個攔截器都可以設(shè)置兩個攔截函數(shù),一個為成功攔截,一個為失敗攔截。在調(diào)用axios.request()之后,請求的配置會先進入請求攔截器中,正??梢砸恢眻?zhí)行成功攔截函數(shù),如果有異常會進入失敗攔截函數(shù),并不會發(fā)起請求;調(diào)起請求響應返回后,會根據(jù)響應信息進入響應成功攔截函數(shù)或者響應失敗攔截函數(shù)。

舉個例子

1.添加請求攔截器

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

axios.interceptors.response.use(function (response) {    // 對響應數(shù)據(jù)做點什么    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')
// 發(fā)送請求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上繼續(xù)使用的哈。另外,從npm官網(wǎng)上,可以看到有8000+的三方組件依賴axios,現(xiàn)在axios支持OpenHarmony后,更多的三方組件也將能在OpenHarmony上跑起來。

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

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

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

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

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

總結(jié)

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

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

    關(guān)注

    1

    文章

    1043

    瀏覽量

    37184
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4423

    瀏覽量

    67878
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3979

    瀏覽量

    21386

原文標題:網(wǎng)絡(luò)組件axios可以在OpenHarmony上使用了

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    鴻蒙開發(fā)實戰(zhàn):網(wǎng)絡(luò)請求庫【axios

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

    鴻蒙開發(fā)API9API12,有哪些不同

    “分水嶺”,后續(xù)的API版本對于目前的畢設(shè)來說提升并不大,目前畢設(shè)的話,API12已經(jīng)夠用了。 介紹一些兩者的較為關(guān)鍵的區(qū)別: 一、開發(fā)工具版本 API9的開發(fā)工具現(xiàn)在官網(wǎng)已經(jīng)下載不到
    發(fā)表于 06-29 22:47

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

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

    OpenHarmony SDK只支持API8和API9嗎?

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

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

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

    網(wǎng)絡(luò)組件axios可以在OpenHarmony上使用了

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

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

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

    OpenHarmony組件復用示例

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

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

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

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

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

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

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

    OpenHarmony PhotoView組件介紹

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

    關(guān)于OpenHarmony Jchardet組件介紹

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

    OpenHarmony:使用網(wǎng)絡(luò)組件axios與Spring Boot進行前后端交互

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

    基于ArkTS語言的OpenHarmony APP應用開發(fā):HelloOpenharmony

    1、程序簡介該程序是基于OpenHarmony標準系統(tǒng)編寫的UI應用類:HelloOpenHarmony。本案例是基于API9接口開發(fā)。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發(fā)表于 09-15 08:09 ?1676次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應用開發(fā):Hello<b class='flag-5'>Openharmony</b>
    庆阳市| 沛县| 富裕县| 武义县| 石泉县| 石嘴山市| 南宫市| 伊川县| 南通市| 麻江县| 鄢陵县| 大连市| 萨嘎县| 原阳县| 大同县| 加查县| 台湾省| 宁晋县| 横峰县| 河曲县| 东乡县| 松潘县| 包头市| 新巴尔虎左旗| 博爱县| 焉耆| 兰考县| 开鲁县| 乌什县| 无锡市| 灵丘县| 灵石县| 曲周县| 龙海市| 柏乡县| 东阳市| 安阳县| 共和县| 和硕县| 柳州市| 石台县|