我正在React中建立一个网站,并且想知道在放置JS函数方面更好的做法是什么。如果我有方法doSomething()
并在某个组件的多个实例中使用doSomething()
,将doSomething()
放在子组件或父组件中会更好吗?如果它在父组件中,则使遵循该代码变得有些困难,而如果在子组件中,则将检索到多个相同的方法(即,对于所调用的子组件的每个实例而言)。
即这样更好吗?
export default class Parent extends Component{
doSomething(){...}
render(){
return(
<Child />
<Child />
<Child />
) }
}
或者这个:
export default class Parent extends Component{
render(){
return(
<Child />
<Child />
<Child />
) }
}
class Child extends Component{
doSomething(){...}
render(){
return(
<p>This is the child component</p>
)
}
}
答案 0 :(得分:2)
如果仅在Child实例之间使用,我会将方法放在Child类中。
“尽管它在子组件中,但有多个相同的方法可以检索。”
您在上面的子级中声明doSomething()的方式并未使其成为实例方法。
doSomething()
方法将最终具有Child原型的属性,并且其引用将由所有实例共享。
要使doSomething结束实例方法,您必须在Child构造函数中定义类似this.doSomething = function(){...
的东西。
(另一个例外是,如果您声明doSomething()是Child类的构造函数的static
方法)。