2017-09-29 58 views
0

我在這個生態系統的反應很新,但是,很明顯,到目前爲止組件上的是什麼,以及如何使用,以創建一個:爲什麼你應該在React(Native)中擴展組件?

export default class NotificationsScreen extends Component { 
    render() { 
     return(<View></View>); 
    } 
} 

但是我已經看到一些例子,只是使用

const MySmallComponent = (props) => <View></View> 

和應用程序似乎工作一樣很好..

什麼是延長Component的優勢在哪裏?

+0

[React functional stateless component,PureComponent,Component;有什麼區別和什麼時候我們應該使用什麼?](https://stackoverflow.com/questions/40703675/react-functional-stateless-component-purecomponent-component-what-are-the-dif) – bennygenel

回答

2

由於React與函數式編程緊密相關,在React中編寫純函數總是一個好習慣。如果您的組件不需要管理國家或涉及生命週期的方法,然後使用無狀態的組件:

  1. 它只是感覺更自然這樣
  2. 更容易寫,更易於閱讀
  3. 沒有extends,狀態和生命週期方法意味着更快的代碼

你甚至可以在this article找到更多的原因。所以我想說的是,如果你不需要管理它的狀態,總是使用無狀態的組件。

0

丹·阿布拉莫夫創造了術語智能和愚蠢組件。之後,他將它們稱爲容器和展示組件。所以

export default class NotificationsScreen extends Component { 
    render() { 
     return(<View></View>); 
    } 
} 

是一個容器和

const MySmallComponent = (props) => <View></View> 

是表象成分。

表示組件僅用於演示目的,即它們很少具有它們自己的狀態,它們僅用於通過從父組件中接收道具或在其中包含許多子組件來顯示UI上的數據。演示組件不使用反應生命週期方法。

作爲智能組件或容器通常具有自己的狀態並利用生命週期方法進行反應,並且這些組件通常都有自己的狀態。

+0

嗯..這是一個很好的方式來把它,但功能tho ..假設我從來沒有使用任何生命週期方法,什麼和哪裏會崩潰? –

+0

你在說什麼? –

+0

我的意思是喜歡,而不是實際的崩潰,但是如果在任何地方都使用這種異常/性能問題,會出現什麼類型的異常/性能問題? –

相關問題