首先要了解react建立元件的三種方法:
- 函式式無狀態元件
- ES5方式 React.createClass 建立元件
- ES6方式 extends React.Component
在這裡詳細介紹一下ES6 建立react元件
首先要了解一下ES6中的class 。在calss方法中,繼承是使用extends關鍵字來實現的。子類必須在constructor()呼叫super()方法,否則新建例項時會報錯。
報錯的原因是:子類是沒有自己的this物件的,它只能繼承自父類的this物件,然後對其進行加工,而super()就是將父類中的this對向繼承給子類的。沒有super,子類就得不到this物件。
constructor() ------構造方法
這是ES6對類的預設方法,通過new命令生成物件例項時呼叫該方法。並且,該方法是類中必須有的,如果沒有顯示定義,則會預設新增空的constructor()方法
super(props) -----super() -----以及不寫super的區別 --------------繼承
如果用到constructor就必須寫super()是用來初始化this的,可以繫結事件到this上
如果在constructor 中使用this.props,就必須給super加引數 super(props)
如果沒有用到constructor是可以不寫的;react會預設新增一個空的constructor
(無論有沒有constructor,在render中this.props都是可以使用的,這是React
自動附帶的)