React DOM tree 是由單一個最上層組件,包含數目不等的組件,每個組件都可以包含數目不等的組件,最後展成一個組件樹。

props是當前組件對外溝通的唯一管道,當props被更改,其下的DOM就會被更新。

state是當前組件內部的狀態,一旦變動,當前組件也會被更新。

React 組件生命週期和對時期對應的方法:

參考連結

初始化

componentWillMount():用來在render前最後一次更改state,而且不會觸發重新render

render()

componentDidMount():對DOM的異步操作放在這裡

初始化一個組件和其子組件的順序依序是: parent.componentWillMount() parent.render() child.componentWillMount() child.render() child.componentDidMount() parent.componentDidMount()

更新

componentWillReceiveProps(nextProps, nextContext):組件接收到新的props會調用,當前組件的state發生變化不會執行。從當前組件的父組件改變當前組件的props意指從外部更新此組件,而state改變造成的更新,不在此處。此函數可以在更新前,最後一次修改state而不會觸發重新render。官方建議最外層的組件改變state與伺服器和用戶互動,而子組件只負責通過props更新。

componentShouldUpdate():決定組件收到新的props和state後是否更新,預設回傳true。組件會將render()的返回值與當前的DOM比較,只更新有變動的部份。在此階段不能使用this.setState()。

componentWillUpdate(), componentDidUpdate():只能作非狀態的計算,同樣不能使用this.setState()。

移除

componentWillMount():解除事件監聽,清除記憶體等放在這裡。

理解 Navigator 的好文章

react-native组件生命周期在navigator上的表现

react-native组件生命周期在navigator上的表现续

浅析react-native的Navigator组件01之最简实例

浅析react-native的Navigator组件02之数据传送

浅析react-native的Navigator组件03之动画切换

理解 ListView 的好文章

浅析Listview组件01之最简实例

第七卷 - Fetch 簡介以及 React Native 之 Fetch 的練習

深入浅出React(四):虚拟DOM Diff算法解析

Hot-reload

React-Native 实现增量热更新的思路

React Native热部署

WebView

React-Native之Android: WebView(Html)与原生端通讯

ES5/ES6

React/React Native 的ES5 ES6写法对照表

Android

Android Developers Guide 中文版

results matching ""

    No results matching ""