1. 程式人生 > >React Native隨堂筆記1

React Native隨堂筆記1

道具(屬性)

以常見的基礎元件Image為例,在建立一個圖片時,可以傳入一個名為source的prop來指定要顯示的圖片的地址,以及使用名為style的prop來控制其尺寸。

import React, { Component } from 'react';
import { Image } from 'react-native';

export default class Bananas extends Component {
  render() {
    let pic = {
      uri: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg'
    };
    return (
      <Image source={pic} style={{width: 193, height: 110}} />
    );
  }
}

譯註:在iOS上使用http連結的圖片地址可能不會顯示,參見這篇說明修改

請注意{pic}外圍有一層括號,我們需要用pic括號來把這個變數嵌入到JSX語句中。括號的意思是括號內部為一個js變數或表示式,需要執行後取值。因此我們可以把任意合法的JavaScript表示式通過括號嵌入到JSX語句中。

自定義的元件也可以使用props。通過在不同的場景使用不同的屬性定製,儘量可以自提高定義元件的複用範疇只需在render函式中引用this.props,然後按需處理即可下面是一個例子:

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class Greeting extends Component {
  render() {
    return (
      <View style={{alignItems: 'center'}}>
        <Text>Hello {this.props.name}!</Text>
      </View>
    );
  }
}

export default class LotsOfGreetings extends Component {
  render() {
    return (
      <View style={{alignItems: 'center'}}>
        <Greeting name='Rexxar' />
        <Greeting name='Jaina' />
        <Greeting name='Valeera' />
      </View>
    );
  }
}

我們在Greeting元件中將name作為一個屬性來定製,這樣可以複用這一元件來製作各種不同的“問候語”。上面的例子把Greeting元件寫在JSX語句中,用法和內建元件並無二致 -這正是React體系的魅力所在 - 如果你想搭建一套自己的基礎UI框架,那就放手做吧!

的上面例子出現了一樣新的名為View的元件。View常用作其他元件的容器,來幫助控制佈局和樣式。

僅僅使用props和基礎的TextImage以及View元件,你就已經足以編寫各式各樣的UI元件了。要學習如何動態修改你的介面,那就需要進一步學習狀態(狀態)的概念