React Native隨堂筆記1
阿新 • • 發佈:2018-12-16
道具(屬性)
以常見的基礎元件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
和基礎的Text
,Image
以及View
元件,你就已經足以編寫各式各樣的UI元件了。要學習如何動態修改你的介面,那就需要進一步學習狀態(狀態)的概念。