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学习笔记(二十九)报表设计:reporting service 报表开发常见问题
在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...
- Eclipse在线安装SVN
一.SVN在线安装 下面为在线安装SVN插件.以下是在线安装步骤: 其中http://subclipse.tigris.org/update_1.10.x是最新版本的SVN插件的下载站点[subcli ...
- SharePoint 2013 Service 状态无法启动,显示“启动中(Starting)”
Problem 在SharePoint 2013 Central Administration中启动 SharePoint Service(也称为:Service Machine Instance)时 ...
- JQuery文本框水印插件的简单实现
采用JQuery实现文本框的水印效果非常容易,效果如下: 代码片段,定义要应用水印效果的文本框的样式: .watermark { color: #cccccc; } 将JavaScript代码封装成J ...
- Lingo 做线性规划 - Revenue Management
Reference: <An Introduction to Management Science Quantitative Approaches to Decision Making, Rev ...
- MySQL的pt-query-digest的下载与使用
对于脚本文件,是可以执行的,我们不用安装.所以,但是这个脚本文件没有执行的权限,所以,我们首先赋予这个脚本文件的可执行的权限. 再次查看文件的信息后. 已经有了执行的权限了. 运行脚本的时候,可要注意 ...
- Java程序员的日常 —— static的用法讲解实践
之前文章说过Java中static的作用,有朋友想看个例子.于是便抽空写了个小栗子 代码 package xing.test.thinking.chap5; class A{ public A() { ...
- Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9
Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. ...
- Leetcode 204 Count Primes 数论
题意:统计小于n的质数个数. 作为一个无节操的楼主,表示用了素数筛法,并没有用线性素数筛法. 是的,素数筛法并不是该题最佳的解法,线性素数筛法才是. 至于什么是素数筛法,请百度吧. class Sol ...
- AngularJS(一)
什么是AngularJS[双向数据绑定:从界面的操作能实时反映到数据,数据的变更能实时展现到界面.]?1.AngularJS 使得开发现代的单一页面应用程序(SPAs:Single Page Appl ...