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 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...
随机推荐
- 设计模式之美:Prototype(原型)
索引 别名 意图 结构 参与者 适用性 缺点 效果 相关模式 命名约定 实现 实现方式(一):使用一个原型管理器. 实现方式(二):使用浅拷贝实现克隆(Clone)操作. 实现方式(三):使用深拷贝实 ...
- Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过
Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...
- Unity3D——相机跟随物体移动
public Transform target; public float moveSmooth=5f; Vector3 offset; void Start () { offset = transf ...
- listen--监听数量
listen--监听数量 #include <sys/socket.h> int listen(int sockfd, int backlog); /* backlog指定了该套接口排队的 ...
- [异常] MyEclipse Deploy点不开 An internal error occurred during: "Launching MVC on Tomcat 6.x". java.lang.NullPointerException
>_<" 今天做struts时,工程写好了,可是点击MyEclipse上面的Delopy不会跳出常规的窗口,导致各种坑~ >_<" 如果直接运行还出现下面的 ...
- [游戏学习28] MFC 时钟
>_<:这是一个时钟小程序 >_<:通过调用获得系统时间然后经过计算得出当前时间,然后再以3个圆环表示时分秒. >_<:TAO_CLOCK.h class CMyA ...
- OS——进程简答题(1)
1,叙述进程和程序的主要区别. 解:进程和程序是两个既有联系又有区别的两个概念,它们的主要区别如下: (1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念.而进程是程序在处理机上的 ...
- ubuntu下firefox无法看bilibili解决方案
突然发现,在ubuntu中使用firefox打开bilibili网站无法加载视频与弹幕,在网上搜到的可能的问题为:linux下的firefox使用的flash player是老版本,bilibili不 ...
- How Tomcat works — 八、tomcat中的session管理
在使用shiro的session的时候感觉对于tomcat中session的管理还不是特别清楚,而且session管理作为tomcat中比较重要的一部分还是很有必要学习的. 目录 概述 session ...
- 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(三)
----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<In-Memory OLTP – Comm ...