2016-03-03 67 views
13

我正在使用React Native項目,並且我正在爲React組件使用ES6類。React.js - 爲所有組件方法使用屬性初始值設定項

由於通過ES6類定義的React組件沒有自動綁定,因此將ES7屬性初始值設定項與箭頭函數相結合的React團隊recommends可創建相同的效果。

爲了保持一致,並防止這種結合,我使用ES7屬性初始化所有組件方法的困惑:

class Foo extends React.Component { 
    constructor(props) { 
    super(props); 
    ... 
    } 

    componentDidMount =() => { 
     ... 
    }; 

    bar =() => { 
    ... 
    }; 

    render =() => { 
    ... 
    }; 
} 

我想知道 - 是否有任何嚴重的性能警告要注意的?特別是,我想知道render()方法。

總的來說,這看起來是一個很好的方法嗎?

回答

10

最大的缺陷是,這個特殊功能尚未標準或尚未達成一致。 (它不會是ES7,因爲沒有ES7,也許是ES2017,但仍然不清楚)

分配幾個新的長壽命對象並將它們存儲在類中也有成本。

我不會推薦這個。僅用於回調。

+0

感謝您的反饋! – ender672

+1

快速跟進 - 我的團隊決定爲回調使用bind()方法,現在我們暫時停止使用帶箭頭函數的屬性初始值設定項。你的迴應幫助我們做出了這個決定。 – ender672

相關問題