RN环境安装
安装依赖
要在开发运行在Android上面的应用,必须安装的依赖有:Node、Python2、JDK和Android Studio、模拟器。
创建RN新项目
你可以使用–version参数(注意是两个杠)创建指定版本的项目。注意版本号必须精确到两个小数点。
npx react-native init AwesomeProject --version 0.66.0
编译并运行RN应用
cd AwesomeProject
yarn android
如果配置没有问题,我们可以看到应用自动安装到设备上并开始运行。
创建RN组件的快捷键:rnc。
获取屏幕的宽高和像素比
import { Text, View ,Dimensions} from 'react-native'
import React, { Component } from 'react'
// scale指的是屏幕的像素比
const {width,height,scale}=Dimensions.get('window')
Dimension.get(“window”)获取到的是屏幕(可用)可视范围的宽高,而不是绝对的宽高。
RN的flex布局
RN中使用flexbox规则来指定某个组件的子元素的布局。
display属性
display属性设置此组件的显示类型,它的值只支持flex和none,其中flex是默认值。
flex属性
在RN中,flex的值是一个正数,它的大小将与其弹性值成比例。
一般来说使用flexDirection、alignItems和justifyContent三个样式属性就已经能够满足RN的大多数布局需求。
flexDirection
设置主轴方向的。决定盒子默认的排列方式。
row设置主轴为水平方向。
row-reverse:设置主轴为水平反向。
column:设置主轴为垂直方向。(默认),默认的轴向是垂直方向的。跟我们网页的Flex布局似乎就不同了。
column-reverse:设置主轴为垂直反向。
alignItems
侧轴的对齐。
justifyContent
控制主轴的对齐。
FlatList组件的使用
import { Text, View,FlatList } from 'react-native'
import React, { Component } from 'react'
export default class App extends Component {
constructor(props){
super()
this.state={
arrData:[
{
id:1,
data:10
},
{
id:2,
data:10
},
{
id:3,
data:10
}]
}
}
renderData=({item})=>{ //这个函数决定了每一项的展示方式 item就是每一项数据
return(
<Text>{item.id}:{item.data}</Text>
)
}
render() {
return (
<View>
<FlatList
numColumns={1} //每行显示的个数
data={this.state.arrData} //数据源
renderItem={this.renderData} //渲染函数(需要怎么样来渲染这个数据)
/>
</View>
)
}
}