2016-12-14 91 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