Javascript 如何导出多个类方法
我有几个方法可以返回我希望能够从类外调用的jsx对象,目前,我发现唯一可行的方法是在同一个文件中从类外导出arrow函数,但最终导致类外函数太多 那么,有没有一种方法可以从同一个文件中导出多个类方法并将它们保留在类中 我不想为这些函数中的每一个都创建一个新的类,因为它们是相关的,我需要在类外调用它们,以便能够将它们添加到故事书中 我想要的示例:Javascript 如何导出多个类方法,javascript,reactjs,ecmascript-6,es6-class,Javascript,Reactjs,Ecmascript 6,Es6 Class,我有几个方法可以返回我希望能够从类外调用的jsx对象,目前,我发现唯一可行的方法是在同一个文件中从类外导出arrow函数,但最终导致类外函数太多 那么,有没有一种方法可以从同一个文件中导出多个类方法并将它们保留在类中 我不想为这些函数中的每一个都创建一个新的类,因为它们是相关的,我需要在类外调用它们,以便能够将它们添加到故事书中 我想要的示例: //A.js class A{ export foo() {return (<div>...</div>)} expo
//A.js
class A{
export foo() {return (<div>...</div>)}
export bar() {...}
}
export default A
您不需要导出类方法。只需创建类的实例并调用它们:
// A.js
class A{
foo() {return (<div>...</div>)}
bar() {...}
}
export default A
如果您的方法不依赖于自己的属性或变量(使用
this
访问),您可能希望尝试使用静态方法
export default class A {
static foo() {return (<div>...</div>)}
static bar() {...}
...
}
使用静态方法的优点是不需要创建实例就可以使用它。并且,在创建新实例时不会重新创建它
参考:
现场演示:
A类{
静态foo(){
返回“foo()调用”;
}
静态条(){
log(this.foo()+“from bar()”);
}
}
B类{
构造函数(){
A.bar();
}
}
新B()
可能想使用static
关键字,但我最终得到了一个文件,其中的大多数方法都不在类中,不是吗@你介意描述一下这些函数是做什么的吗?它们返回一个jsx对象,其中一些是纯函数,一些调用其他函数,但它们都没有状态@如果它们不依赖于类变量/属性(使用this
),我认为使用static
可能是您真正需要的。例如,在类中,使用静态foo(){…}
。否则,需要使用公共类方法。我如何从该类中的静态方法调用另一个静态方法this.foo()
不起作用。根据参考资料,您可以从bar()内部使用this.foo()
。使用此方法时是否遇到任何错误?另外,class A
是否会发生在扩展React.Component
上?您打算如何使用该类?它不会扩展React.Component
。我得到一个错误,它找不到那个函数。这个类只是一个视图,它有表格、卡片、列表等等。这很奇怪,我的例子已经成功了。。。但是,您想在另一个扩展了React.Component
的类中使用class A
中的JSX并呈现它,这样说对吗?
import A from './A'
// create instance of class A
const a = new A()
// ... and call your methods on instance `a`
a.foo()
a.bar()
export default class A {
static foo() {return (<div>...</div>)}
static bar() {...}
...
}
import A from './A';
A.foo();