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 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...
随机推荐
- MERGE 用法
1.不带输出的SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[InsertShiGongJiao] ), @com ...
- JS备忘录
/** *删除数组指定下标或指定对象 */ Array.prototype.remove = function (obj) { for (var i = 0; i < this.length; ...
- Java程序员的日常 —— 《编程思想》包和访问权限
包的作用 在C++中有命名空间的概念,这是因为,不同的项目或者人写出来的代码,可能名称是一样的.比如,java.util中有List,java.awt中也有List,那么我们在开发中,怎么会知道使用的 ...
- django with mysql (part-3)
step01: write second view-function vim views.py step02: configure your ( urls.py ) vim urls.py step0 ...
- 旋转V字俄罗斯方块
实现效果如图,也就是一个图像的旋转.注意,旋转后的文字是相对应的,而且文字还是立起的.第一次点击时显示,第二次点击时开始旋转.下面是我做这个效果的记录,方法这么差,我也就不说什么了. 先上HTML/C ...
- atitit.js 各版本 and 新特性跟浏览器支持报告
atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...
- 更新日志 - BugHD Android 客户端上线
当我们讨论 Bug 的时候,总是一脸愁容.尤其是移动应用的开发者,要应对用户可能在各种场景下使用 App 时产生的莫名崩溃. 为了更好地解决开发者的焦虑,BugHD Android 客户端上线了,高效 ...
- 已知2个一维数组:a[]={3,4,5,6,7},b[]={1,2,3,4,5,6,7};把数组a与数组b 对应的元素乘积再赋值给数组b,如:b[2]=a[2]*b[2];最后输出数组b的元素。
package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) ...
- SQL Server 内存中OLTP内部机制概述(三)
----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<SQL Server In-Memory ...
- php-fpm.conf 重要参数 max_children 和 request_terminate_timeout(转)
php-fpm.conf有两个至关重要的参数:一个是”max_children”,另一个是”request_terminate_timeout”我的两个设置的值一个是”40″,一个是”900″,但是这 ...