React Native ——实现一个简单的抓取github上的项目数据列表
/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict'; var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
Image,
View,
TextInput,
ListView,
} = React;
var GIT_URL = 'https://api.github.com/search/repositories?q='; var AwesonProject = React.createClass({
/*-- lifecycle --*/
getInitialState: function() {
return {
// (row1, row2) => row1 !== row2:如果两次的数据不同的话,告诉数据源该数据发生了改变
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
}),
};
},
render: function() {
var listViewContent;
if (this.state.dataSource.getRowCount() === 0) {
listViewContent =
<Text>
there's nothing to search , please have another key to tap.
</Text>;
} else {
listViewContent =
<ListView
ref='listview'
dataSource={this.state.dataSource}
renderRow={this.renderRow}
automaticallyAdjustConntentInsets={false}
keyboardShouldPersistTaps={true}
showsVerticalScrollIndicator={true} />
}
return (
<View style={styles.container}>
<TextInput
autoCapitalize='none'
autoCorrect={false}
placeholder='search forr git project...'
onEndEditing={this.onSearchChange}
style={styles.searchView}>
</TextInput>
{listViewContent}
</View>
);
}, /*-- private method --*/ //点击搜索响应数据请求
onSearchChange: function(event) {
var serarchText = event.nativeEvent.text.toLowerCase();
var queryURL = GIT_URL + encodeURIComponent(serarchText); fetch(queryURL)
.then((response) => response.json())
.then((responseData) => {
if (responseData.items) {
this.setState({
dataSource : this.state.dataSource.cloneWithRows(responseData.items)
});
}
})
.done();
}, //渲染列表中的每一行数据
renderRow: function(item) {
return (
<View>
<View style={styles.row}>
<Image
source={{uri:item.owner.avatar_url}}
style={styles.Img}>
</Image>
<View>
<Text style={styles.name}>
{item.full_name}
</Text>
<Text style={styles.name}>
Star:{item.stargazers_count}
</Text>
</View>
</View>
<View style={styles.cellBorder}></View>
</View>
);
}, }); /*布局样式*/
var styles = StyleSheet.create({
container: {
flex: 1,
// justifyContent: 'center',
// alignItems: 'center',
backgroundColor: '#F5FCFF',
},
searchView:{
marginTop:30,
padding:5,
margin:5,
fontSize:15,
height:30,
backgroundColor:'#EAEAEA'
},
row:{
flexDirection:'row',
padding:8,
},
name:{
marginBottom:8,
marginLeft:8,
},
Img:{
width:50,
height:50,
},
cellBorder:{
height:1,
marginLeft:2,
backgroundColor:'#EAEAEA',
}
}); AppRegistry.registerComponent('AwesonProject', () => AwesonProject);
React Native ——实现一个简单的抓取github上的项目数据列表的更多相关文章
- 使用git拉取github上的项目
一. 安装Git 去Git官网,下载安装包,一路点next,默认安装. 安装之后,在空白处右键,菜单显示有 Git GUI Here 和 Git Bash Here ,表示Git安装成功. 二. 配置 ...
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
我们通过上一篇了解了爬虫具体要实现的工作之后,我们分析得出的网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出 ...
- 如何用 React Native 创建一个iOS APP?
诚然,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 Reac ...
- 如何用 React Native 创建一个iOS APP?(三)
前两部分,<如何用 React Native 创建一个iOS APP?>,<如何用 React Native 创建一个iOS APP (二)?>中,我们分别讲了用 React ...
- 如何用 React Native 创建一个iOS APP?(二)
我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...
- React Native创建一个APP
React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽 ...
- arpspoof+driftnet+ ARP欺骗简单图片抓取
arpspoof+driftnet+ ARP欺骗简单图片抓取 driftnet是一款简单而使用的图片捕获工具,可以很方便的在网络数据包中抓取图片.该工具可以实时和离线捕获指定数据包中是图片 环境 受害 ...
- [python应用]python简单图片抓取
前言 emmmm python简单图片抓取 1 import requests 2 import threading 3 import queue 4 from subprocess import P ...
- 抓取摩拜单车API数据,并做可视化分析
抓取摩拜单车API数据,并做可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...
随机推荐
- Dynamic CRM 2013学习笔记(二十四)页面保存前进行逻辑验证
我们有时要验证下页面上的一些逻辑,比如开始时间不能晚于结束时间,不对时不让保存.我们可以在相关的字段事件上处理,但这如果要判断的字段比较多时,就比较麻烦了. 这时候我们就可以利用Form的OnSave ...
- 关于mvc中@Html.DropDownListFor和@Html.DropDownList默认值无法选中问题简单总结
当我们在做类似编辑功能的时候,会给定select选中默认值,然而mvc中偶尔这个功能不能用,或者是强类型的@Html.DropDownListFor不能用.凑巧今天遇到问题,解决问题时发现了mvc的一 ...
- Microsoft 家族新成员 Datazen 移动BI 介绍
开篇介绍 Microsoft 在上个月即 2015年4月份收购了 Datazen www.datazen.com, Datazen 专注于移动 BI 和数据可视化领域,并且它的基本部署与配置架构都是基 ...
- C#移除HTML标记
移除一段文字中的HTML标记,以消除其中包含的样式和段落等,最常用的办法可能就是正则表达式了.但是请注意,正则表达式并不能处理所有的HTML文档,所以有时采用一个迭代的方式会更好,如for循环.看下面 ...
- 汇编int21h,DOS调用(转)
表:DOS系统功能调INT 21H AH 功能 调用参数 返回参数 00 程序终止(同INT 20H) CS=程序段前缀 01 键盘输入并回显 AL=输入字符 02 显示输出 DL=输出字符 03 异 ...
- FreeIconMaker - 在线创建免费和时尚的图标
在设计一个网站或 Web 应用程序时,你不能否认网页设计工具的重要性,这些工具有助于简化您的任务和完成您的项目.FreeIconMaker.com 是一个免费的在线图标制作工具,您也可以创建自己的模板 ...
- 【Android Studio】Android Studio 安装及设置
版权所有, 禁止转载, 如有需要, 请站内联系. 本文地址: http://blog.csdn.net/caroline_wendy/article/details/20845807 时间: 2014 ...
- .NET Remoting学习笔记(一)概念
目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...
- DL 小记之序
在开通博客的1小时03分钟50秒,我写下了第一篇文字.不知道从什么时候开始,什么东西都有个期限,在写下几小时几分几秒之后,我总是习惯性的加上不知道从什么时候开始. 本博客不含惊天动地的故事,想看故事请 ...
- Spring之@Configuration配置解析
1.简单的示例: @Configuration @EnableConfigurationProperties({DemoProperties.class}) public class DemoConf ...