本文分享我个人在JavaScript模块导出/导入方面的经验和最佳实践,并非强制性规范。
不推荐的做法:
function foo(){}
function bar(){}
function other(){}
export {foo,bar,other}
原因:这种方法需要手动维护导出列表,一旦函数发生增删改,都需要更新此列表,维护成本较高。
推荐的做法:
export function foo(){}
export function bar(){}
export function other(){}
原因:每个函数都直接使用export
关键字导出,无需维护额外的导出列表,更简洁高效。
少量函数导入:
import {foo,bar} from './path/to/let/say/functions.js';
对于少量函数(一到两个),这种方法简洁明了。
大量函数导入:
不推荐的做法:
import {foo,bar,other,...} from './path/to/let/say/functions.js';
原因:类似于导出,需要手动维护导入列表,维护成本较高。
推荐的做法:
import * as FT from './path/to/let/say/functions.js';
//使用示例
FT.foo()
FT.bar()
FT.other()
原因:使用* as
语法将所有导出内容导入到一个命名空间中,无需维护导入列表,始终保持最新状态。
我个人习惯将命名空间命名为大写字母、简短且能反映导入文件名。例如,functions.js
导入为 FT
。
总结:以上是我在JavaScript模块导出/导入方面的实践经验,希望能对您有所帮助。后续我将分享更多经验。