鍍金池/ 問(wèn)答/HTML5  HTML/ React.createClass 與ES6 class能混著用嗎

React.createClass 與ES6 class能混著用嗎

如題,請(qǐng)問(wèn)你們寫(xiě)react組件的時(shí)候都是只使用同一種方式創(chuàng)建組件的嗎?如果寫(xiě)一般的組件通常都是使用class方式來(lái)寫(xiě),然后寫(xiě)一個(gè)組件有路由生命周期鉤子函數(shù)的話使用createClass會(huì)方便點(diǎn)吧?本人新上手react 歡迎大神們可以討論下

回答
編輯回答
別傷我

React 官方建議:Normally you would define a React component as a plain JavaScript class。

class定義組件,更為簡(jiǎn)潔方便,也是官方推薦的。React 16中如果不使用class定義組件的話,則需要引入create-react-class,然后使用它提供的createReactClass方法創(chuàng)建組件,此方法比較繁瑣,不推薦使用。兩種方法如何混用,相當(dāng)于一套項(xiàng)目代碼中有兩套代碼風(fēng)格,絕對(duì)是要避免的。

2018年4月25日 19:33
編輯回答
落殤

React的Component分為statefulstateless兩種, 就是中文里所謂的智能組件和木偶組件。兩種組件的區(qū)別在于: stateful組件包含了state和各種生命周期的hook函數(shù), stateless組件更為簡(jiǎn)單純粹。React針對(duì)stateless組件做了優(yōu)化,因此在非必須條件下,使用stateless組件能帶來(lái)性能上的優(yōu)勢(shì)。

附上一篇介紹:https://medium.com/@juanguard...

補(bǔ)充:ES6和jsx在React開(kāi)發(fā)當(dāng)中是更為推薦的選擇, createClass在React 15被deprecated, React 16已經(jīng)移除

2017年8月6日 08:36