React Native实例

本文主要包括以下内容

  1. View组件的实例
  2. Text组件实例
  3. Navigator组件实例
  4. TextInput组件实例

View组件的实例

效果如下

这里写图片描述

代码如下

/*** Sample React Native App* https://github.com/facebook/react-native* @flow*/import React, { Component } from 'react';
import {AppRegistry,StyleSheet,Text,PixelRatio,View
} from 'react-native';class Abc extends Component {render() {return (<View style={styles.flex}><View style={styles.container}><View style={[styles.item,styles.center]}><Text style={styles.font}>酒店</Text></View><View style={[styles.item,styles.lineLeftRight]}><View style={[styles.center,styles.flex,styles.lineCenter]}><Text style={styles.font}>海外酒店</Text></View><View style={[styles.center,styles.flex]}><Text style={styles.font}>特惠酒店</Text></View></View><View style={styles.item}><View style={[styles.center,styles.flex,styles.lineCenter]}><Text style={styles.font}>团购</Text></View><View style={[styles.center,styles.flex]}><Text style={styles.font}>客栈,公寓</Text></View></View></View></View>);}
}const styles = StyleSheet.create({container: {marginTop:200,marginLeft:5,marginRight:5,height:84,flexDirection:'row',borderRadius:5,padding:2,backgroundColor:'#FF0067',},item: {flex: 1,height:80,},center:{justifyContent:'center',alignItems:'center',},flex:{flex:1,},font:{color:'#fff',fontSize:16,fontWeight:'bold',},lineLeftRight:{borderLeftWidth:1/PixelRatio.get(),borderRightWidth:1/PixelRatio.get(),borderColor:'#fff',},lineCenter:{borderBottomWidth:1/PixelRatio.get(),borderColor:'#fff',},
});AppRegistry.registerComponent('Abc', () => Abc);

Text组件实例

head.js

/*** Sample React Native App* https://github.com/facebook/react-native* @flow*/import React, { Component } from 'react';
import {AppRegistry,StyleSheet,Text,PixelRatio,View
} from 'react-native';class Header extends Component {render() {return (<View style={styles.flex}><Text style={styles.font}><Text style={styles.font_1}>网易</Text><Text style={styles.font_2}>新闻</Text><Text>有态度"</Text></Text></View>);}
}const styles = StyleSheet.create({flex:{marginTop:25,height:50,borderBottomWidth:3/PixelRatio.get(),borderBottomColor:'#EF2D36',alignItems:'center',},font:{fontSize:25,fontWeight:'bold',textAlign:'center',},font_1:{color:'#CD1D1C',},font_2:{color:'#FFF',backgroundColor:'#CD1D1C',},
});module.exports=Header;

将head.js导入到主JS中的代码为const Header=require(‘./head’);

主JS详细代码

实现了列表,并且有点击效果

/*** Sample React Native App* https://github.com/facebook/react-native* @flow*/import React, { Component } from 'react';
import {AppRegistry,StyleSheet,Text,PixelRatio,View
} from 'react-native';const Header=require('./head');class Abc extends Component {render() {return (<View style={styles.flex}><Header></Header><List title='一线城市楼市退烧 有房源一夜跌价160万'></List><List title='上海市民称墓地太贵买不起 买房存骨灰'></List><List title='朝鲜再发视频:摧毁青瓦台 一切化作灰烬'></List><List title='生活大爆炸人物原型都好牛逼'></List><ImportantNewsnews={['解放军报报社大楼正在拆除 标识已被卸下(图)','韩国停签东三省52家旅行社 或为阻止朝旅游创汇','南京大学生发起亲吻陌生人活动 有女生献初吻-南京大学生发起亲吻陌生人活动 有女生献初吻-南京大学生发起亲吻陌生人活动 有女生献初吻','防总部署长江防汛:以防御98年量级大洪水为目标']}></ImportantNews></View>);}
}class List extends Component{render(){return (<View style={styles.list_item}><Text style={styles.list_item_font}>{this.props.title}</Text></View>);}
}class ImportantNews extends Component{show(title){alert(title);}render(){var news=[];for(var i in this.props.news){var text=(<TextonPress={this.show.bind(this,this.props.news[i])}numberOfLines={2}style={styles.news_item}key={i}>{this.props.news[i]}</Text>);news.push(text);}return (<View style={styles.flex}><Text style={styles.news_title}>今日要闻</Text>{news}</View>);}
}const styles = StyleSheet.create({flex:{flex:1,},list_item:{height:40,marginLeft:10,marginRight:10,borderBottomWidth:1,borderBottomColor:'#ddd',justifyContent:'center',},list_item_font:{fontSize:16,},news_item:{marginLeft:10,marginRight:10,fontSize:15,lineHeight:40,},news_title:{fontSize:20,fontWeight:'bold',color:'#CD1D1C',marginLeft:10,marginTop:15,},
});AppRegistry.registerComponent('Abc', () => Abc);

效果如下

这里写图片描述

这里写图片描述

实现了页面跳转和通过Navigator传递数据并回传数据,在componentDidMount中获取传递过来的数据

/*** Sample React Native App* https://github.com/facebook/react-native* @flow*/import React, { Component } from 'react';
import {AppRegistry,StyleSheet,Navigator,ScrollView,Text,PixelRatio,View
} from 'react-native';const Header=require('./head');class Abc extends Component {render() {let defaultName='List';let defaultComponent=List;return (<NavigatorinitialRoute={{ name: defaultName, component: defaultComponent }}//配置场景configureScene={(route) => {//这个是页面之间跳转时候的动画,具体有哪些?可以看这个目录下,有源代码的: node_modules/react-//native/Libraries/CustomComponents/Navigator/NavigatorSceneConfigs.jsreturn Navigator.SceneConfigs.VerticalDownSwipeJump;}}renderScene={(route, navigator) =>{let Component = route.component;return <Component {...route.params} navigator={navigator} />}} />);  }
}class List extends Component {constructor(props) {super(props);this.state = {id:1,user:null,};}_pressButton() {const { navigator } = this.props;//为什么这里可以取得 props.navigator?请看上文://<Component {...route.params} navigator={navigator} />//这里传递了navigator作为propsconst self=this;if(navigator) {navigator.push({name: 'Detail',component: Detail,params:{id:this.state.id,//从详情页获取usergetUser: function(user) {self.setState({user: user})}}})}}render(){if(this.state.user){return(<View><Text style={styles.list_item}>用户信息: { JSON.stringify(this.state.user) }</Text></View>);}else{return (<ScrollView style={styles.flex}><Text style={styles.list_item} onPress={this._pressButton.bind(this)} >☆ 豪华邮轮济州岛3日游</Text><Text style={styles.list_item} onPress={this._pressButton.bind(this)}>☆ 豪华邮轮台湾3日游</Text><Text style={styles.list_item} onPress={this._pressButton.bind(this)}>☆ 豪华邮轮地中海8日游</Text></ScrollView>);}}}const USER_MODELS = {1: { name: 'mot', age: 23 },2: { name: '晴明大大', age: 25 }
};class Detail extends Component{constructor(props) {super(props);this.state = {id:null};}componentDidMount() {//这里获取从FirstPageComponent传递过来的参数: idthis.setState({id: this.props.id});}_pressButton() {const { navigator } = this.props;if(this.props.getUser) {let user = USER_MODELS[this.props.id];this.props.getUser(user);}if(navigator) {//很熟悉吧,入栈出栈~ 把当前的页面pop掉,这里就返回到了上一个页面:List了navigator.pop();}}render(){return(<ScrollView><Text style={styles.list_item} >传递过来的用户id是:{this.state.id}</Text><Text style={styles.list_item} onPress={this._pressButton.bind(this)} >点击我可以跳回去</Text></ScrollView>);}
}const styles = StyleSheet.create({flex:{flex:1,},list_item:{height:40,marginLeft:10,marginRight:10,fontSize:20,borderBottomWidth:1,borderBottomColor:'#ddd',justifyContent:'center',},
});AppRegistry.registerComponent('Abc', () => Abc);

效果如下

这里写图片描述

TextInput组件实例

/*** Sample React Native App* https://github.com/facebook/react-native* @flow*/import React, { Component } from 'react';
import {AppRegistry,StyleSheet,Navigator,ScrollView,TextInput,Text,PixelRatio,View
} from 'react-native';class Abc extends Component {render() {return (<View style={[styles.flex,styles.topStatus]}><Search></Search></View>);}
}class Search extends Component {render(){return(<View style={[styles.flex,styles.flexDirection]}><View style={[styles.flex,styles.input]}><TextInput  returnKeyType="search" /></View><View style={styles.btn}><Text style={styles.search}>搜索</Text></View></View>);}
}const styles = StyleSheet.create({flex:{flex:1,},flexDirection:{flexDirection:'row',},topStatus:{marginTop:25,},input:{height:45,borderColor:'red',borderWidth:1,marginLeft:10,paddingLeft:10,borderRadius:5,},btn:{width:45,marginLeft:-5,marginRight:5,backgroundColor:'#23BEFF',height:45,justifyContent:'center',alignItems:'center',},search:{color:'#fff',fontSize:15,fontWeight:'bold',},
});AppRegistry.registerComponent('Abc', () => Abc);

效果如下

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌的硬件梦:Pixel手机、ChromeOS平板和Home音箱

来源&#xff1a; 网易智能&#xff08;北京时间10月9日23点&#xff09;&#xff0c;谷歌在纽约如期举行了主题为“谷歌制造”&#xff08;Made By Google&#xff09;的硬件发布会&#xff0c;推出了Pixel手机、平板 笔记本&#xff0c;以及音箱等一系列新品硬件。一个月以来…

“万维网之父”发文阐述其下一个网络时代:将数据与应用分离,互联网去中心化正在路上...

来源&#xff1a;Deep Tech深科技关注“万维网之父”Tim Berners-Lee 动态的人&#xff0c;一定知道这位业内大神正在投身于下一代互联网的建设——一个去中心化的互联网。他正在领导其 MIT 团队搭建一个名为“ Solid ”&#xff08;Social Linked Data 社交关联数据&#xff0…

React Native官方DEMO

官方给我们提供了UIExplorer项目&#xff0c;这里边包含React Native的基本所有组件的使用介绍和方法。 运行官方DEMO步骤如下 安装react native环境 React Native项目源码下载下载安装cygwin软件 下载安装NDK然后安装以及配置 添加Node依赖模块:该命令行需要切到react-nati…

牛津教授揭秘AI革命及其前沿进展

来源&#xff1a;专知导读&#xff1a;2018年9月9日-14日&#xff0c;DeepMind主办的Deep Learning Indaba 2018大会在南非斯泰伦博斯举行。会上&#xff0c;牛津大学教授Nando de Freitas和其他15位专家做了《深度学习&#xff1a;AI革命及其前沿进展》的报告。报告导读&#…

数据结构之DFS与BFS实现

本文主要包括以下内容 邻接矩阵实现无向图的BFS与DFS 邻接表实现无向图的BFS与DFS 理论介绍 深度优先搜索介绍 图的深度优先搜索(Depth First Search)&#xff0c;和树的先序遍历比较类似。 它的思想&#xff1a;假设初始状态是图中所有顶点均未被访问&#xff0c;则从某…

一图分析华为最新AI生态与未来趋势

华为全联接大会2018年10月10日在上海召开&#xff0c;作为面向ICT产业的年度大会&#xff0c;华为公布了重要AI战略&#xff0c;将华为AI发展战略概括为以下五大方向&#xff1a;强力投资基础研究、打造全栈解决方案、投资开放生态和人才培养、解决方案增强以及内部效率提升。华…

在读博士的第八年,她破解了量子计算领域最基本的问题之一

来源&#xff1a;原理Urmila Mahadev&#xff08;厄米拉马哈德夫&#xff09;花了八年时间在研究生院解决了量子计算领域最基本的问题之一&#xff1a;怎么知道量子计算机是否做了量子计算呢&#xff1f;2017年春天&#xff0c;Urmila Mahadev发现自己处于大多数研究生都会认为…

React Native实例之房产搜索APP

React Native 开发越来越火了&#xff0c;web app也是未来的潮流, 现在react native已经可以完成一些最基本的功能. 通过开发一些简单的应用, 可以更加熟练的掌握 RN 的知识. 在学习的过程&#xff0c;发现了一个房产搜索APP的实例&#xff0c;但只有ios版本&#xff0c; 本文…

“间谍芯片”疑云:谁在撒谎?警示何在?

芯片级安全没有终点来演&#xff1a;科学网摘要&#xff1a;10月5日起&#xff0c;一则“苹果、亚马逊被卷入&#xff0c;中国黑客利用微芯片入侵美国”的消息不胫而走&#xff0c;消息所波及的中美科技企业的股价应声下跌。10月5日起&#xff0c;一则“苹果、亚马逊被卷入&…

Extjs4前端开发代码规范参考

准则&#xff1a; 一致性&#xff0c; 隔离与统一管理&#xff0c; 螺旋式重构改进&#xff0c; 消除重复&#xff0c; 借鉴现有方案 1. 保证系统实现的一致性&#xff0c;寻求一致性方案&#xff0c; 相同或相似功能尽量用统一模式处理&#xff1b; 2. 尽可能使用隔离技…

数据结构之最小生成树

prime算法 普里姆(Prim)算法&#xff0c;是用来求加权连通图的最小生成树的算法。 基本思想 对于图G而言&#xff0c;V是所有顶点的集合&#xff1b;现在&#xff0c;设置两个新的集合U和T&#xff0c;其中U用于存放G的最小生成树中的顶点&#xff0c;T存放G的最小生成树中…

打造无所不及的智能:徐直军发布华为AI战略及全栈全场景方案

来源&#xff1a;C114通信网摘要&#xff1a;选择正确的问题比寻找新奇的方案更重要。“这是一个伟大的时代&#xff0c;华为立志为推动人类进步和世界繁荣做出贡献。2017年底&#xff0c;我们提出了新的愿景和使命&#xff0c;‘把数字世界带入每个人、每个家庭、每个组织&…

同步博客到CSDN

经过一些朋友的多次邀请&#xff0c;现同步博客到CSDN&#xff0c;地址:http://blog.csdn.net/knightswarrior。 转载于:https://www.cnblogs.com/KnightsWarrior/p/BackupToCSDN.html

四超多强 一文看懂中国CV独角兽格局

来源&#xff1a;网易智能通过短短两三年的攻城略地&#xff0c;中国CV&#xff08;Computer Vision&#xff0c;计算机视觉&#xff09;行业形成“四超多强”的格局。商汤、云从、依图、旷视还被称为“四小龙”&#xff0c;他们之间的故事由来已久&#xff0c;谈及最多的当属他…

http://www.shengshiyouxi.com

android从Linux系统启动有4个步骤&#xff1b; (1) init进程启动 (2) Native服务启动 (3) System Server&#xff0c;Android服务启动 (4) Home启动 总体启动框架图如&#xff1a; 第一步&#xff1a;initial进程(system\core\init) init进程&…

清华 Aminer 发布最新2018人脸识别研究报告

来源&#xff1a;专知AMiner平台由清华大学计算机系研发&#xff0c;拥有我国完全自主知识产权。平台包含了超过2.3亿学术论文/专利和1.36亿学者的科技图谱&#xff0c;提供学者评价、专家发现、智能指派、学术地图等科技情报专业化服务。 今日&#xff0c;该平台发布最新的201…

敏捷实践:比每日会议更疯狂的半日会议!

由“每周例会”说起 每天项目例会的话&#xff0c;频率太高了&#xff0c;可能会浪费时间&#xff0c;如果每月一次&#xff0c;似乎时间太长了&#xff0c;于是我们往往会“每周例会”。 有一次我参加了某项目的每周例会&#xff0c;开会的时间是周五&#xff0c;会上其中一位…

智能生产的现状与未来!

来源&#xff1a;数字化企业北京机械工业自动化研究所首席专家蒋明炜先生是我国最早投身企业管理及其信息化事业的专家之一&#xff0c;积累了宝贵的理论实践经验&#xff0c;在国家提出《中国制造2025》之后&#xff0c;蒋明炜先生作为该领域资深专家&#xff0c;先后组织领导…

82岁的北大教授证明了黎曼猜想?

来源&#xff1a;AI科技大本营最近&#xff0c;黎曼猜想有点热。上个月&#xff0c;89 岁的菲尔兹奖与阿贝尔奖双料得主、英国皇家学会院士迈克尔阿蒂亚爵士&#xff08;Michael Atiyah&#xff09;刚刚宣布自己证明了黎曼猜想。近日&#xff0c;82 岁的北大教授&#xff08;已…

Atlas机器人再秀逆天操作!波士顿动力科研or商业化,将何去何从?

来源&#xff1a;物联网智库在众多机器人相关的技术公司里&#xff0c;波士顿动力的核心特点在于&#xff0c;他们始终将「仿生」看作机器人设计的最高宗旨。其创始人Raibert 也称自己的目的是建造一种能和动物以及人一模一样的&#xff0c;完成一切事情的机器人。这既是波士顿…