React Component中状态定义的语法是否有实质性区别?

时间:2018-07-28 08:05:23

标签: javascript reactjs performance react-native memory-management

在React组件中定义state(在类和构造函数中参见以下示例)是否有区别(语法除外)?

在JS内存分配,内存管理,JS性能,内存泄漏,垃圾回收,其他问题方面有区别吗?

我通常在state中定义constructor。但是查看其他人的代码后,我发现他们在类范围内定义状态。

class Button extends React.Component {
    // this style vs. ...
    state = {
        color: 'red'
    }

    constructor(props) {
        super(props)

        // ... vs. this style
        this.state = {
            color: 'red'
        }
    }
}

2 个答案:

答案 0 :(得分:1)

在构造函数外部初始化实例属性是EcmaScript下一版本的建议语法。它是official stage 3 proposal的一部分。

根据此提案,以下代码段:

class MyClass {
    constructor() {
        console.log("Hello from constructor!");
        this.x = 1;
    }
}

可以缩写为:

class MyClass {
    x = 1;

    constructor() {
        console.log("Hello from constructor!");
    }
}

声明x属性并使用与示例中的state属性相同的语法对其进行初始化。

答案 1 :(得分:0)

它也是一种PREACT语法...