【HarmonyOS NEXT】ArkTs 模块的导出和引入

1. 前置学习文档

2.前言

什么是模块?
模块可以理解为函数代码块的功能,是封装对象的属性和方法的javascript代码,它可以是某单个文件,变量或者函数

  历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,这对开发大型的、复杂的项目形成了巨大障碍。
  在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD/CMD 三种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD/CMD 规范,成为浏览器和服务器通用的模块解决方案。
  ES6之后,官方制定了模块规范**【ES6 Module】** —— ES6标准规范中,以export指令导出接口,以import引入模块,ArkTS中的模块化也是基于此规范来实现的

关于更多关于前端模块化信息可以看这篇文章:https://mp.weixin.qq.com/s/15sedEuUVTsgyUm1lswrKA

3. export命令

关于export命令的详细文档介绍:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/export

3.1 导出单个[类/函数/变量]

下面是一个ets[arkts]文件,里面使用export命令来导出变量,函数或类(class)

//A.ets​//导出变量​
export let str = "export的内容";​
​
//导出函数​
export function add(x: number, y: number) {
   
   return x + y;}​
​
//导出类​
export class Test {
   
   printHello() {
   
   console.log("你好 世界")}}

3.2 导出列表[推荐写法]

除了上述的写法,还有一种推荐使用的,因为这样就可以在脚本尾部,一眼看清楚输出了哪些变量。

//A.ets​let str = "export的内容";​
​
function add(x: number, y: number) {
   
   return x + y;}​
​
class Test {
   
   printHello() {
   
   console.log("你好 世界")}}​
​
//导出变量、函数、类​
export {
   
   str,add,Test}

3.3 导出别名/重命名

通常情况下,export输出的变量就是本来的名字,但是可以使用as关键字重命名。

//A.ets​let str = "export的内容";​
​
function add(x: number, y: number) {
   
   return x + y;}​
​
class _Test {
   
   printHello() {
   
   console.log("你好 世界")}}let test=new Test()//导出变量、函数、类,并重命名​
export {
   
   ​
  str as Str, add as Add, Test as TT}

4. import命令

关于import命令的详细文档介绍:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/import

使用export命令定义了模块的对外接口以后,其他 【ets/ts/js】 文件就可以通过import命令加载这个模块。
**📢 单例模式:**import 模块的代码只会执行一次,同一个url文件只会第一次导入时执行代码。后续任何地方import都不会执行模块代码了,也就是说,import语句是 Singleton 模式的。
**📢 只读-共享:**模块导入的接口的是只读的,不能修改。当然引用对象的属性值是可以修改的,不建议这么干,注意模块是共享的,导出的是一个引用,修改后其他方也会生效。

4.1 引入导出的内容

  使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。
下面代码的import命令,用于加载A.ets文件,引入后便可以在B.ets文件中使用A.ets文件中的变量、函数或类等。import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(A.ets)对外接口的名称相同。

//A.ets​
let str = "export的内容";​
​
function add(x: number, y: number) {
   
   return x + y;}​
​
class Test {
   
   printHello() {
   
   console.log("你好 世界")}}//导出变量、函数、类,并重命名​
export {
   
   ​
  str as Str, add as Add, Test 
HarmonyOS Next 应用中使用 ArkTS 调用云函数,通常涉及到与后端服务的通信,例如通过网络请求调用远程的云函数接口。虽然 ArkTSHarmonyOS 的主力开发语言,但在调用云函数时,通常需要依赖网络请求模块(如 `@ohos.net.http`)来实现与云端的交互。 以下是一个使用 ArkTS 调用云函数的基本步骤示例代码: ### 1. 引入网络请求模块 HarmonyOS 提供了 `@ohos.net.http` 模块,用于发起 HTTP 请求。在调用云函数时,可以使用该模块发送 GET 或 POST 请求。 ```typescript import http from '@ohos.net.http'; ``` ### 2. 创建 HTTP 请求 使用 `http.createHttp()` 创建一个 HTTP 客户端实例,并使用 `request` 方法发起请求。假设云函数的 URL 为 `https://api.example.com/cloud-function`,并且需要传递一些参数。 ```typescript let httpRequest = http.createHttp(); httpRequest.request( "https://api.example.com/cloud-function", { method: http.RequestMethod.POST, header: { 'Content-Type': 'application/json' }, extraData: JSON.stringify({ param1: "value1", param2: "value2" }) }, (err: Error, data: http.HttpResponse) => { if (err) { console.error("请求失败:" + JSON.stringify(err)); return; } console.info("请求成功,响应数据:" + data.result); } ); ``` ### 3. 处理响应数据 在回调函数中,可以处理服务器返回的数据。`data.result` 通常包含云函数返回的结果。 ### 4. 错误处理 在实际开发中,网络请求可能会失败,因此需要对错误进行处理。可以通过检查 `err` 参数来判断是否发生错误,并根据具体情况做出相应的处理。 ### 5. 释放资源 在完成请求后,建议调用 `destroy` 方法释放资源。 ```typescript httpRequest.destroy(); ``` ### 注意事项 - **权限配置**:确保在 `config.json` 中添加了网络权限: ```json { "module": { "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] } } ``` - **安全性**:在调用云函数时,确保使用 HTTPS 协议以保证数据传输的安全性。 - **异步处理**:由于网络请求是异步的,确保在回调函数中正确处理异步逻辑。 通过上述步骤,可以在 HarmonyOS Next 应用中使用 ArkTS 调用云函数[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冉冉同学_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值