鸿蒙编程基础篇——导入与导出
·
在ArkTS中,默认情况下一个ets文件中的顶层声明,包括常量、变量、函数、类、接口等,在其他文件中是不可见的。如果需要在模块外可见,则需要明确使用export导出。同时,使用时需要通过import导入所导出的模块中的变量、函数、类等。两个模块之间的关系是通过在文件级别上使用import和export建立的。
默认导出和导入
默认导出:指定一个模块,只能默认导出的 一个值或对象。使用时,可以 自定义 导入名称。
使用步骤:
-
当前模块中 导出模块。
-
需要使用的地方 导入模块。
- 文件可以通过export default方式声明默认导出,演示代码如下:
//文件:File1.ets
export default function helloWorld() {
console.log("您好,世界!")
}
- 在另一个文件中,可以通过import导入模块,演示代码如下:
//文件File2.ets
import helloWorld from "./File1" //从文件文件File1.ets中导入模块
helloWorld(); //调用函数
/*注意使用的是相对路径,即:
/:进入目录
./:当前目录
../:上一级目录
*/
按需导入和导出
按需导出:指一个模块,按照需求,导出多个特性。
- 除了默认导出之外,可以通过export导出多个变量和函数等,演示代码如下:
//文件:maths.ets
export let pi = 3.14
export let e = 2718
export class RandomNumber {
//省略类实现代码
}
export function abs(num: number) {
console.log("" + num)
}
- 对于文件maths.ets中的导出,可以在别的文件中通过使用import导入,演示代码如下:
//文件:app2.ets
import { pi, e, abs } from "./maths"
console.log("" + pi)
console.log("" + e)
abs(-100 * e)
- 导入时,使用import {old as new}可以为已有的标识符重命名,演示代码如下:
// 文件: app3.ets
import { pi as π } from "./maths"; //以π作为pi的新名
console.log( π );
- 导入时,使用* as name可以把所有导出的对象放入一个命名空间下,演示代码如下:
// 文件: app4.ets
import * as math from "./maths" // 放到命名空间math下
console.log( math.pi ) // 通过命名空间访问pi
const a = math.abs( math.e ) // 通过命名空间访问e
默认导出与按需导出的区别
- export为按需导出,export default为默认导出。
- 在一个文件或模块中,export、import可以有多个,export default只能有一个,即默认导出只能有一个。
- 通过export方式导出,在导入时需要加花括号{ },使用export default导出的,在导入时则不需要加花括号{ }。
演示代码如下:
//文件:file7.ets
export const s1 = "something"
export function log( s ) {
return s;
}
const s2= "something"
export default s2 // 注意export default导出只能有一个
// 另外一个文件
import { s1, log } from './file7 // 注意带花括号,也可以分开导入两次
import s2 from './fils7'; // 导入时不带花括号
export default s2 // export default导出只能有一个,这里再次导出s2
- 另外,使用export default为模块指定默认输出,可以不需要知道所要加载模块的标识符名称。演示代码如下:
//文件:file7.ets
let s = "something"
export default s
//这里相当于为s变量值"something"起了一个系统默认的变量名default
//default只能有一个值,所以一个文件内不能有多个export default
//文件:file8.ets
import any1 from "./file7"
import any2 from "./file7"
// 本质上,teste.ets文件的export default输出一个叫做default的变量,
// 系统允许为它取任意名字,且不需要用花括号包含
console.log( any1 ) // 输出something
console.log( any2 ) // 输出something
在鸿蒙应用开发过程中,往往需要使用鸿蒙SDK提供的各种能力,这时就需要导入相应的接口模块。
更多推荐

所有评论(0)