天天看點

react-native 元件生命周期

react-native 元件生命周期:

1、生成子產品代碼:

根據編譯時指定的子產品目标參數,編譯器會生成相應的供Node.js (CommonJS),Require.js (AMD),isomorphic (UMD), SystemJS或ECMAScript 2015 native modules (ES6)子產品加載系統使用的代碼

react-native元件導入的兩種寫法:

ES5(Native ECMAScript 2015 modules) (類似commonJS的子產品導入)

//導入React ReactNative包  
var React = require ("react");  
var {Component, PropTypes} = React;  
var ReactNative = require ("react-native");  
var { Image, Text,} from 'react-native';  
//導入其他元件  
var MyComponent = require('./MyComponent');  
//定義元件  
var TestComponent = React.creatClass({  });
module.exports = TestComponent;  
           

ES6

//導入React ReactNative包     
import React,{ Component,PropTypes }  from 'react';  
import {  } from 'react-native';  
//導入其他元件  
import MyComponent from './MyComponent'; 
//定義元件  
export default class TestComponent extends Component{ }
           

2、元件的特性

props:元件中的屬性,

常用于跳轉頁面的傳值:this.props.navigator.push({component:xxx, id: this.props.id})

不同元件之間傳值

子元件向父元件傳值

state:元件中的狀态

父元件向子元件傳值

this.setState 方法就修改狀态值,每次修改以後,自動調用 this.render 方法,再次渲染元件。

this.props 和 this.state 都用于描述元件的特性:

this.props 表示那些一旦定義,就不再改變的特性,

this.state 是會随着使用者互動而産生變化的特性

3、react-native元件生命周期

react-native是基于react的元件架構,

如Android中的View一樣,react native中的元件也有生命周期(就是一個對象從開始生成到最後消亡所經曆的狀态)

生命周期:

Mount階段

(1)getDefaultProps 執行個體化調用(調用一次),初始化預設屬性props

(2)getInitialState 初始化狀态state,常用于改變元件狀态

(3)componentWillMount元件将被加載前,可最後一次初始化狀态

(5)render 渲染元件

(4)componentDidMount 元件被加載後,常用于互動,如設定計時setTimetou或者setInterval,或者發起網絡請求

Update階段:處理與使用者的互動,如:點選、觸摸事件

(8)componentWillReceiveProps 指父元素對元件的props或state進行了修改

(9)shouldComponentUpdate 一般用于優化,傳回false或true來控制是否進行渲染

不重新渲染:回到元件運作狀态

重新渲染(則進行如下操作)

(5)componentWillUpdate 元件重新整理前調用

(6)componentDidUpdate 元件重新整理hook

Unmount階段

(7)componentWillUnMount元件解除安裝,用于清除計時,監聽removeAllListeners

繼續閱讀