为React Component类创建函数的优缺点和最佳实践是什么?

时间:2017-09-29 18:39:53

标签: javascript reactjs class function-declaration function-expression

这两个类都做同样的事情,但ClassA似乎是多余的,因为每次声明一个函数时你必须做的绑定,而且由于函数创建类型的不同,ClassB看起来不像ClassA那样干净。

class ClassA extends React.Component {
    constructor() {
        super();
        this.state = { message: "bar" };
        this.foo = this.foo.bind();
    }
    foo() {
        console.log(this.state.message);
    }
    render() {
        return <SomeComponent foo={this.foo} />;
    }
}

class ClassB extends React.Component {
    constructor() {
        super();
        this.state = { message: "bar" };
    }
    foo = () => {
        console.log(this.state.message);
    }
    render() {
        return <SomeComponent foo={this.foo} />;
    }
}

为了摆脱ClassB中的函数创建差异,你可以做类似这样的事情,其中​​一切都是表达式。

class ClassC extends React.Component {

    state = { message: "bar" }

    foo = () => {
        console.log(this.state.message);
    }
    render = () => {
        return <SomeComponent foo={this.foo} />;
    }
}

在这种情况下,函数声明和表达式之间的优缺点是什么?是否存在性能,内存甚至可维护性差异?

编辑:我想今天的标准技术,性能差异不是很明显。我想我真正想要的是这个问题是什么是为类创建函数的最佳实践(特别是React组件)

0 个答案:

没有答案
相关问题