在父组件或子组件内部放置方法的位置?

时间:2019-07-06 22:05:06

标签: javascript reactjs

我正在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>
        )

    }

}

1 个答案:

答案 0 :(得分:2)

如果仅在Child实例之间使用,我会将方法放在Child类中。

“尽管它在子组件中,但有多个相同的方法可以检索。”

您在上面的子级中声明doSomething()的方式并未使其成为实例方法。

doSomething()方法将最终具有Child原型的属性,并且其引用将由所有实例共享。

要使doSomething结束实例方法,您必须在Child构造函数中定义类似this.doSomething = function(){...的东西。

(另一个例外是,如果您声明doSomething()是Child类的构造函数的static方法)。