javascript – ES6模块:导出单类静态方法或多个单独方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – ES6模块:导出单类静态方法或多个单独方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2138字,纯文字阅读大概需要4分钟。
内容图文
![javascript – ES6模块:导出单类静态方法或多个单独方法](/upload/InfoBanner/zyjiaocheng/716/60e32eb9ad684c8b961bbb71b4912cfa.jpg)
我正在使用ECMAScript6模块.从以下选项中导出/导入模块中的多个方法的正确方法是什么?
单类静态方法:
//------ myClass.js ------
export default class myClass {
static myMethod1() {
console.log('foo');
}
static myMethod2(args...) {
console.log('bar');
}
}
//------ app.js ------
import myClass from 'myClass';
myClass.myMethod1(); //foo
多种导出方法:
//------ myMethods.js ------
export function myMethod1() {
console.log('foo');
}
export function myMethod2() {
console.log('bar');
}
//------ app.js ------
import {myMethod1, myMethod2} from 'myMethods';
myMethod1() //foo;
//OR
import * as myMethods from 'myMethods';
myMethods.myMethod1() //foo;
1)出口:
一类只是静态方法感觉有点“代码味道”,但同样单独导出所有内容确实感觉有点冗长.它只是开发人员偏好还是存在性能影响?
2)导入:
‘* as’语法是我首选的方法,因为它允许您使用点符号(引用模块和方法)帮助代码可读性.当我可能只使用其中一种方法时,这是否有性能影响?
解决方法:
A class of just static methods feels like a bit of a ‘code smell’
确实是的.你这里不需要一个类结构!只需导出一个普通的“模块”对象:
//------ myMethods.js ------
export default {
myMethod1() {
console.log('foo');
},
myMethod2(args...) {
console.log('bar');
}
};
不过,我建议您使用多个导出的第二种方法.
exporting everything individually does feel a bit verbose
好吧,你不需要任何包装结构,所以我认为它的样板更少.您只需要明确标记要导出的所有内容,这不是一件坏事.
* as
syntax is my preferred method as it allows you to use the dot notation (referencing both the module AND the method) aiding code readability.
这是个人偏好,并且取决于您正在编写的代码类型.有时简洁性更高,但明确引用模块的能力也很有用.请注意,使用* as和default-imported对象的命名空间导入在这里非常相似,但只有命名导出允许您通过import {myMethod1,myMethod2}直接引用它们.因此,最好将选择权交给那些导入模块的人.
Does this have any performance implications?
不多.无论如何,当前的ES6实现还没有针对性能优化.
通常,静态标识符比属性访问更容易解析和优化[1],理论上多个命名导出和部分导入可以使JIT更快,当然,如果在捆绑期间删除未使用的导出,则较小文件需要较少的加载时间.有关详情,请参见here.几乎没有明显的性能差异,你应该使用更好的可维护性.
[1]:模块命名空间(import * as ns)也是静态的,即使ns ….看起来像动态属性访问
内容总结
以上是互联网集市为您收集整理的javascript – ES6模块:导出单类静态方法或多个单独方法全部内容,希望文章能够帮你解决javascript – ES6模块:导出单类静态方法或多个单独方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。