2016-12-14 64 views
5

我碰到一些前来状态反应是定义的类中的组件的状态就像如下代码:初始化反应成分

// Snippet 1 
class Sample extends React.Component { 
    state = { 
     count: 0 
    } 
} 

我学到的方式作出反应是宣布类的构造函数内的状态:

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

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

上述两个代码片段有什么区别?在代码片段1中,假设在初始化类时应该正确设置状态是否安全?

回答

3

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

根据Facebook的ES7 +物业初始化器

等待,分配给性质好像 定义类的一个非常迫切的方式!你是对的,但是,我们这样设计它 ,因为它是惯用的。我们完全有理由相信一个更声明语法 属性初始化JavaScript中的未来版本到货....

这里是Facebook的link 也更多信息here

也是一个Link to the proposal