问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

网络组件axios可以在OpenHarmony上使用了

发布网友 发布时间:2024-08-20 13:20

我来回答

1个回答

热心网友 时间:2024-08-24 11:39

上古浏览器页面在向服务器请求数据时,因为返回的是整个页面的数据,页面都会强制刷新一下,这对于用户来讲并不是很友好。并且我们只是需要修改页面的部分数据,但是从服务器端发送的却是整个页面的数据,十分消耗网络资源。而我们只是需要刷新页面的部分数据,并不希望刷新整个页面。于是一种新的技术,异步网络请求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三方组件。

第二步:

在页面中,引入axios。

第三步:

axios既可以当做函数直接使用发起异步请求,也可以当做对象,使用其get/post方法发起异步请求。

作为函数直接发起post请求,通过promise获取请求结果。

作为对象,使用其get/post方法发起异步请求

axios拦截器

一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器、响应拦截器。

● 请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie、请求体加验证、设置请求头等,相当于是对每个接口里相同操作的一个封装;

● 响应拦截器 同理,响应拦截器也是如此功能,只是在请求得到响应之后,对响应体的一些处理,通常是数据统一处理等,也常来判断登录失效等。

axios的拦截器作用非常大。axios的拦截器分为请求拦截器跟响应拦截器,都是可以设置多个请求或者响应拦截。每个拦截器都可以设置两个拦截函数,一个为成功拦截,一个为失败拦截。在调用axios.request()之后,请求的配置会先进入请求拦截器中,正常可以一直执行成功拦截函数,如果有异常会进入失败拦截函数,并不会发起请求;调起请求响应返回后,会根据响应信息进入响应成功拦截函数或者响应失败拦截函数。

举个例子

1.添加请求拦截器

2.添加响应拦截器

axios上传下载文件

使用axios还可以在OpenHarmony中上传和下载文件,并获取到上传和下载的进度。

上传文件:

下载文件:

除以上特性之外,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的适配模块,并未修改原生社区的一行代码。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
宁德市有哪些区 福建宁德市有哪些区 宁德市有哪些商圈 安装项目错误: 项目文件不存在 (C:\Windows\SolidWorks\IM_20110-4 高压103低压98心跳104,医生初诊是脑梗,怎么治疗,吃什么药?饮食方面注 ... 最新版好玩的谐音梗网名210个 比较搞笑幽默的网名 德国猎梗FCI标准 “流泉百折玉琮琤”的出处是哪里 “细听犀谈座为倾”的出处是哪里 “西蜀东吴一世英”的出处是哪里 细谈Axios中那些不为人知的秘密!一文读懂Axios 78.1K 的 Axios 项目有哪些值得借鉴的地方 说说Axios中值得学习的核心知识点 涉嫌不正当竞争判刑吗 哪些行为属于不正当竞争行为,需要负什么法律责任? 11种不正当竞争行为处罚标准是什么 关于不正当竞争行为的处理,叙述正确的有( )。 金瓜的做法大全家常 金瓜蒸米饭的做法 重磅!2024QS学科排名发布,哪些学科吃香 ...国际教养学部 2024年10月和2025年4月入学​ 微信怎么知道谁举报我? 志高空调显示E4是什么问题? 志高空调e4是什么故障原因 志高空调显示e4是什么故障 汉民男士与回民女士如何交往 志高空调显示E4是什么故障? 谁介绍我几部类似“前任攻略”一样的电影 回民和汉民结婚了饮食方面怎么解决呢? 爱丁堡大学17个专业全英前五!2024年QS学科排名再创佳绩 简析无感知刷新Token 有谁懂得机械设计,我需要设计带有撞针直线往返运动的装置,撞针被撞物体... 安宫牛黄丸一年吃4次 商场厨房油烟机清洗 什么是劳动关系,与劳务关系的区别是哪些? 劳动关系和劳务关系问题有什么区别? 代购化妆品都是从哪里拿货源?化妆品代购的货一般都哪里拿的 劳动关系与劳务关系区别是什么 劳动关系与劳务关系之间的区别? 品牌化妆品批发货源在哪里找 排除妨害先予执行申请书可以获得认可吗? 我和弟弟父母一个土地合同父母去世了弟弟在我不知情的情况下叫别人代... 恢复原状纠纷被驳回怎么办? 不是户主签的空白协议合同有效吗? 怎么查询之前做过的飞机机票-航空资讯 我在2013年11月买过两张飞机票!怎么查询记录? 200KB大小转换成TXT里的文字,是多少字? 200K的图片是多大? 200kb的qq聊天记录msg2.0文件会聊了多少个字?我有重要的事情需要用到... 请问2007年4月18日铁路大提速后z25有几种座位?此车有硬座吗? 武汉到上海路线问题