鸿蒙初开,开天辟地

模块化开发

模块化开发是ArkTS中一个很重要的概念,模块化是把复杂的程序拆分为多个独立的文件单元,每个文件都被称为一个模块,ArkTS中默认情况下,每个模块都有自己的作用域,一个模块内声明的任何内容(变量,函数,类等等)对于模块外部都是不可见的无法获取的,为了在一个模块内使用别的模块内的内容,就涉及到模块的导入和导出

Import和export

导出Export 

导出的关键字export,这里我们就将这个laugh方法和version这个常量导出了

export function laugh(){
    console.log("哈哈哈")
}
export const version:number = 1.8;

 导出laugh和version

在引入它们的地方就可以直接使用这个变量和方法了 

import { laugh,version } from './A';
import { laugh as la,version as v } from './A';

 

在B模块中导入

避免命名冲突

若多个模块中具有命名相同的变量函数等内容,将这些内容导入到同一个模块下就会出现命名冲突

解决命名冲突可以使用以下方式解决

1.导入重命名

import { laugh,version } from './A';
import { laugh as la,version as v } from './A';
laugh();
console.log(version);

 

导入重命名

2.创建模块对象

如果遇到冲突内容较多的情况时,重命名可能会较多且冗长,还可以将某个模块的内容统一导入模块对象上

 

import * as A from './A';
import * as C from './C';
A.laugh();
console.log(A.version);
C.laugh();/*  */
console.log(C.version);

模块对象的方式 

此时我们使用的A和C其实就是一个对象,因此称为模块对象的方式

 

import * as A from './A';
import * as C from './C';
A.laugh();
console.log(A.version);
console.log(A);
C.laugh();/*  */
console.log(C.version);
console.log(C);

模块对象 

默认导出导入

默认导入导出允许一个模块默认的导出项,就可以不再指定我们导入的内容是什么,而是默认导入的内容就是默认导出的内容

export default function laugh(){
    console.log("哈哈哈")
}
export const version:number = 1.8;
const encode:string = "java";

 

import A from './A';
A();

默认导出

 

默认导入

 当我们的模块只有一个导出项时,我们使用默认导出默认导入还是非常方便的,而且连方法名都可以是匿名的

export default function(){
    console.log("哈哈哈")
}
export const version:number = 1.8;
const encode:string = "java";

 

默认导出匿名函数

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐