前言 學習本系列內容需要具備一定 HTML 開發基礎,沒有基礎的朋友可以先轉至 "HTML快速入門(一)" 學習 本人接觸 React Native 時間並不是特別長,所以對其中的內容和性質瞭解可能會有所偏差,在學習中如果有錯會及時修改內容,也歡迎萬能的朋友們批評指出,謝謝 文章第一版出自簡書,如果 ...
前言
學習本系列內容需要具備一定 HTML 開發基礎,沒有基礎的朋友可以先轉至 HTML快速入門(一) 學習
本人接觸 React Native 時間並不是特別長,所以對其中的內容和性質瞭解可能會有所偏差,在學習中如果有錯會及時修改內容,也歡迎萬能的朋友們批評指出,謝謝
文章第一版出自簡書,如果出現圖片或頁面顯示問題,煩請轉至 簡書 查看 也希望喜歡的朋友可以點贊,謝謝
JSX 和 組件 的概念
React的核心機制之一就是虛擬DOM(可以在記憶體中創建的虛擬DOM元素)React利用虛擬DOM來減少對實際DOM的操作從而提升性能。傳統的創建方式如下:
var newBox = document.createElement('div'); newBox.className = 'box'; $('main').appendChild(newBox);
上面的代碼在可讀性方面比較不好,所以 React 開發了 JSX,利用我們熟悉的 HTML 語法來創建虛擬 DOM,創建方式如下:
<div className="box"> </div>
在實際開發中,JSX在產品打包階段已經編譯成純 JavaScript, JSX的語法不會帶來任何性能影響。所以,JSX可以看成是比較高級但依然直觀的語法糖
View 組件中常見的屬性
- React Native 組件 View,其作用等同於iOS中的 UIView,Android中的 android.view 或者網頁中的 標簽,它是所有組件的父組件,也可以說所有組件繼承了它的所有屬性
- 這邊就將它常見的屬性羅列出來:
- Flexbox:彈性佈局(Flexbox的介紹可以點我)
- Transforms:動畫屬性
- backfaceVisibility('visible', 'hidden'):定義界面翻轉的時候是否可見
- backgroundColor:背景顏色
// 背景顏色 backgroundColor:'red'
效果:
- borderBottomColor:底部邊框顏色
效果:// 底部邊框寬度 borderBottomWidth:5, // 底部邊框顏色 borderBottomColor:'green'
- borderBottomLeftRadius:底部左邊邊框圓角
效果:// 底部邊框左圓角 borderBottomLeftRadius:5
- borderBottomRightRadius:
效果:// 底部邊框右圓角 borderBottomRightRadius:5
- borderBottomWidth:底部邊框寬度
效果:// 底部邊框寬度 borderBottomWidth:5
- borderColor:邊框顏色
效果:// 全體邊框寬度 borderWidth:5, // 全體邊框顏色 borderColor:'yellow'
- borderLeftColor:左邊框顏色
效果:// 左邊邊框顏色 borderLeftColor:'black'
- borderLeftWidth:左邊邊框寬度
效果:// 左邊邊框寬度 borderLeftWidth:10
- borderRadius:邊框圓角
效果:// 全體邊框寬度 borderWidth:5, // 全體邊框顏色 borderColor:'black', // 全體邊框圓角 borderRadius:3
- borderRightColor:右邊邊框顏色
效果:// 右邊框顏色 borderRightColor:'yellow'
- borderRightWidth:右邊邊框寬度
效果:// 右邊框寬度 borderRightWidth:10
- borderStyle('solid', 'dotted', 'dashed'):邊框風格
- solid
效果:// 邊框風格 borderStyle:'solid'
- dotted
效果:// 邊框風格 borderStyle:'dotted'
- dashed
效果:// 邊框風格 borderStyle:'dashed'
- solid
borderTopColor:頂部邊框顏色(參考上面)
borderTopWidth:頂部邊框寬度(參考上面)
borderTopLeftRadius:頂部左邊圓角(參考上面)
borderTopRightRadius:頂部右邊圓角(參考上面)
borderWidth:邊框寬度
效果:// 全體邊框寬度 borderWidth:5
- opacity:設置透明度,取值從 0~1
效果:// 透明度 opacity:0.5
overflow('visible', 'hidden'):設置內容超出容器部分是否顯示(以後的文章講解)
elevation:高度,設置Z軸,可產生立體效果(以後文章講解)
View 組件使用
- 簡單使用
render() {
return (
<View style={styles.container}>
<View style={{width:300, height:100, backgroundColor:'red', borderWidth:1, borderColor:'black'}}>
</View>
</View>
);
}
上面代碼是我們熟悉的 CSS 寫法
效果:
在 React Native 開發中,推薦我們採用 StyleSheet 來進行組件的佈局,這樣從代碼結構上來看會更加清晰,有利於後期的維護
- 我們將上面的樣式通過 StyleSheet 方式來實現
- 視圖部分
var test = React.createClass({ render() { return ( <View style={styles.container}> <View style={styles.viewStyle}> </View> </View> ); } });
- 樣式部分
var styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, viewStyle: { // 尺寸 width:300, height:100, // 背景顏色 backgroundColor:'red', // 邊框寬度 borderWidth:1, // 邊框顏色 borderColor:'black' } });
- 視圖部分