初始化反应组件状态

Amo*_*ous 7 javascript reactjs

我遇到了一些反应代码,它们在类中定义了一个组件状态,如下所示:

// Snippet 1
class Sample extends React.Component {
    state = {
        count: 0
    }
}
Run Code Online (Sandbox Code Playgroud)

我学习React的方法是在类的构造函数中声明状态:

// Snippet 2
class Sample extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            count: 0
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一区别是初始化构造函数中的状态将保证状态在组件生命周期中正确初始化.

上面两个代码片段之间有什么区别?在代码段1中,可以安全地假设在初始化类时正确设置状态?

Tra*_*ain 5

你在看什么ES7+ Property Initializers.它是这样做的,因为Facebook知道Javascript将来会改变.他们希望能够应对这些变化.

根据facebook ES7 + Property Initializers

等等,分配属性似乎是定义类的一种非常必要的方式!你是对的,但是,我们这样设计它是因为它是惯用的.我们完全期望在将来的JavaScript版本中使用更具声明性的属性初始化语法....

这里是Facebook 链接 还有更多信息在这里

也是该提案链接