React Native Style

來源:互聯網
上載者:User

標籤:

  

  React Native不實現CSS而是依賴JavaScript來設定你的應用的樣式,這是一個有爭議的決定,你可以閱讀這些投影片瞭解其背後的基本原理。

  

  申明樣式:

 1 var styles = StyleSheet.create({ 2   base: { 3     width: 38, 4     height: 38, 5   }, 6   background: { 7     backgroundColor: ‘#222222‘, 8   }, 9   active: {10     borderWidth: 2,11     borderColor: ‘#00ff00‘,12   },13 });

  StyleSheet.create 建立是可選的但是它提供了一些關鍵優勢。 它通過轉變值為引用內部表的普通數字來保證值是不可變且不透明的。把它放在檔案的末尾, 你能確保它們只被建立一次並且不是每次都被渲染。

  所有的這些屬性名稱和值都只是工作在網路中的一個子集。對於布局,React Native執行 Flexbox。

 

  使用樣式:

  所有的核心組件接受樣式屬性 <引用上面代碼建立的樣式屬性>

1 <Text style={styles.base} />2 <View style={styles.background} />

  

  它們也接受一組樣式 <注意用數組包起來>

1 <View style={[styles.base, styles.background]} />

  

  行為與Object.assign類似:以防值衝突,這最右邊元素的值將會優先而比如false、undefined和null等值將會被忽略。 通常的做法是在基於某些條件有條件的添加一些樣式。

1 <View style={[styles.base, this.state.active && styles.active]} />

 

  最後,如果你真的需要,你可以在渲染中建立樣式對象,但是不推薦這麼做,最後把它們放到數組定義中。

1 <View2   style={[styles.base, {3     width: this.state.width,4     height: this.state.width * this.state.aspectRatio5   }]}6 />

 

  樣式傳遞:

  為了定製你的子組件的樣式,你可以通過樣式傳遞。使用View.propTypes.style 和 Text.propTypes.style確保僅僅樣式被傳遞。

 1 var List = React.createClass({ 2   propTypes: {                        ===> 保證僅傳遞樣式 3     style: View.propTypes.style,  4     elementStyle: View.propTypes.style,       5   }, 6   render: function() { 7     return ( 8       <View style={this.props.style}> 9         {elements.map((element) =>10           <View style={[styles.element, this.props.elementStyle]} />11         )}12       </View>13     );14   }15 });16 17 // ... in another file ...18 <List style={styles.list} elementStyle={styles.listElement} />  ===> 傳遞樣式到List

 

  總的來說,樣式上面的文法不多,主要多看看View, Image, Text, Flexbox, Transform的樣式支援。

React Native Style

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.