react-native学习(二)
2016-02-16 11:16
786 查看
在程序的主目录下建立文件夹App,用于盛放我们写的js文件,在此文件夹下依次建立文件夹View/Home。并建立Index.js文件。
在Home文件夹下建立Groups.js文件,用atom编辑器打开。
添加如下代码:
'use strict';
var React = require('react-native');
var {
StyleSheet,
Text,
View,
Image
} =React;
var GroupsView = React.createClass({
render: function () {
return (
<View style={styles.container}>
</View>
);
}
});
var styles = React.StyleSheet.create({
container: {
backgroundColor: '#ffffff',
flex: 1,
}
});
module.exports = GroupsView;
这样我们就创建了一个背景是白色,flex为1(此处就是占满整个屏幕)、名字为GroupsView的界面,
var GroupsView = React.createClass({
render: function () {
return (
<View style={styles.container}>
</View>
);
}
});
render: function ()就是渲染界面,需要在界面上添加别的一些控件,都可以在这里面添加。貌似是react-native每次界面显示的时候,都会调用此方法,也就是只要是显示,就需要先进行界面渲染。
var {
StyleSheet,
Text,
View,
Image
} =React;
这种声明方法貌似是react-native的一种特有的(不是很清楚,毕竟刚开始学习)。这要这样声明了,在程序里就可以直接使用View、Text、Image等名称,否则,需要这样写React.View、React.Text、React.Image……
打开根目录下面的index.ios.js,复制如下代码把原有代码覆盖
'use strict';
var React = require('react-native');
var IndexView =require('./App/View/Index');
var {
AppRegistry
} = React;
var newChild = React.createClass({
render: function() {
return (
<IndexView/>
);
}
});
AppRegistry.registerComponent('newChild',() => newChild);
可以看到newChild这个类的渲染就是返回了IndexView这个view,而indexview返回的渲染就是GroupsView。运行看一下效果
![](https://img-blog.csdn.net/20160216111735301?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
一个空白界面显然离我们想要的首页效果还有很长的距离,不过整体思路就是再往GroupsView的渲染函数里面添加想要的一些控件了!
对GroupsView.js 做如下修改,
var GroupsView = React.createClass({
render: function () {
return (
<View style={styles.container}>
<Image style={styles.titleImage}
source={require('image!toptianqi')}>
</Image>
<View style={styles.rowcontainer}>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi01')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi02')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi03')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
</View>
<View style={styles.rowcontainer}>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi04')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi05')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi06')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
</View>
</View>
);
}
});
在开始处需要添加变量:
var Dimensions = require('Dimensions');
//获取屏幕的宽高
var { width, height } =Dimensions.get('window');
添加样式:
var styles = React.StyleSheet.create({
container: {
backgroundColor: '#ffffff',
flex: 1,
},
rowcontainer: {
backgroundColor: '#ffffff',
flexDirection:'row'
},
itemcontainer: {
backgroundColor: '#ffffff',
flex: 1,
alignItems:'center'
},
titleText: {
color: '#009688',
fontSize: 17,
fontWeight: '900',
marginTop: 10
},
titleImage: {
marginTop:45,
marginLeft:0,
marginRight:0,
width:width,
height:0.6*width,
resizeMode:Image.resizeMode.contain
},
itemImage: {
width:0.22*width,
height:100,
resizeMode:Image.resizeMode.contain
}
});
对于flex布局,很多属性,现在我也不是十分清楚如何使用,这里使用的一些属性都是很容易让人理解的一些属性。至于flex布局教程,网上挺多。需要注意的是height:0.6*width, css里面也可以有运算符哦。运行下程序,看下结果:
![](https://img-blog.csdn.net/20160216111818671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
react-native qq交流群:317120818
在Home文件夹下建立Groups.js文件,用atom编辑器打开。
添加如下代码:
'use strict';
var React = require('react-native');
var {
StyleSheet,
Text,
View,
Image
} =React;
var GroupsView = React.createClass({
render: function () {
return (
<View style={styles.container}>
</View>
);
}
});
var styles = React.StyleSheet.create({
container: {
backgroundColor: '#ffffff',
flex: 1,
}
});
module.exports = GroupsView;
这样我们就创建了一个背景是白色,flex为1(此处就是占满整个屏幕)、名字为GroupsView的界面,
var GroupsView = React.createClass({
render: function () {
return (
<View style={styles.container}>
</View>
);
}
});
render: function ()就是渲染界面,需要在界面上添加别的一些控件,都可以在这里面添加。貌似是react-native每次界面显示的时候,都会调用此方法,也就是只要是显示,就需要先进行界面渲染。
var {
StyleSheet,
Text,
View,
Image
} =React;
这种声明方法貌似是react-native的一种特有的(不是很清楚,毕竟刚开始学习)。这要这样声明了,在程序里就可以直接使用View、Text、Image等名称,否则,需要这样写React.View、React.Text、React.Image……
打开根目录下面的index.ios.js,复制如下代码把原有代码覆盖
'use strict';
var React = require('react-native');
var IndexView =require('./App/View/Index');
var {
AppRegistry
} = React;
var newChild = React.createClass({
render: function() {
return (
<IndexView/>
);
}
});
AppRegistry.registerComponent('newChild',() => newChild);
可以看到newChild这个类的渲染就是返回了IndexView这个view,而indexview返回的渲染就是GroupsView。运行看一下效果
一个空白界面显然离我们想要的首页效果还有很长的距离,不过整体思路就是再往GroupsView的渲染函数里面添加想要的一些控件了!
对GroupsView.js 做如下修改,
var GroupsView = React.createClass({
render: function () {
return (
<View style={styles.container}>
<Image style={styles.titleImage}
source={require('image!toptianqi')}>
</Image>
<View style={styles.rowcontainer}>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi01')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi02')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi03')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
</View>
<View style={styles.rowcontainer}>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi04')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi05')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
<View style={styles.itemcontainer}>
<Image style={styles.itemImage}
source={require('image!gushi06')}>
</Image>
<Text style={styles.titleText}>
格林故事
</Text>
</View>
</View>
</View>
);
}
});
在开始处需要添加变量:
var Dimensions = require('Dimensions');
//获取屏幕的宽高
var { width, height } =Dimensions.get('window');
添加样式:
var styles = React.StyleSheet.create({
container: {
backgroundColor: '#ffffff',
flex: 1,
},
rowcontainer: {
backgroundColor: '#ffffff',
flexDirection:'row'
},
itemcontainer: {
backgroundColor: '#ffffff',
flex: 1,
alignItems:'center'
},
titleText: {
color: '#009688',
fontSize: 17,
fontWeight: '900',
marginTop: 10
},
titleImage: {
marginTop:45,
marginLeft:0,
marginRight:0,
width:width,
height:0.6*width,
resizeMode:Image.resizeMode.contain
},
itemImage: {
width:0.22*width,
height:100,
resizeMode:Image.resizeMode.contain
}
});
对于flex布局,很多属性,现在我也不是十分清楚如何使用,这里使用的一些属性都是很容易让人理解的一些属性。至于flex布局教程,网上挺多。需要注意的是height:0.6*width, css里面也可以有运算符哦。运行下程序,看下结果:
react-native qq交流群:317120818
相关文章推荐
- Netty与Reactor模式
- React native 学习
- React-native初体验之一个完整的Flexbox指南
- React基础笔记
- 【React Native开发】React Native控件之RefreshControl组件详解(21)
- React 【ES2015】+ Babel + Gulp + Webpack
- react-native启动异常,react-deep-force-update/.babelrc
- react-native启动异常,react-deep-force-update/.babelrc
- react-native for android 学习笔记 (1) DrawerLayoutAndroid
- React 入门实例教程
- React Native的开发工具和调试方法
- React Native入门——组件构成及生命周期简介
- ReactJS 入门实例学习
- React Native学习之自定义一个组件
- React Native iOS环境搭建 高级版
- react native Unable to download JS bundle 的解决方案
- React-Native 学习之--问题处理 一. github上下载的项目不能运行?
- React Native学习之JavaScript语法转换器
- react-native基础教程(1)
- react-native基础教程(1)