react-native简单使用
基本组件的使用介绍
- View:
- Text:
- TextInput:
- Image:
- Button:
- ActivityIndicator:
- ScrollView:这是一个列表滚动的组件
- ListView:也是一个列表滚动的组件,但是,这个组件已经过时了,官方推荐使用 FlatList 来代替它
index.js
// 从 Reactnative 的包中,导入 AppRegistry 组件,它的作用,就是注册项目首页的
import { AppRegistry } from 'react-native';
import App from './App';
// 导入自己的组件页面
import MyHomePage from './MyHomePage.js'
// 当使用 AppRegistry 注册项目的时候,方法中的第一个参数,不要改,否则项目就废了
// 第二个参数,表示要把哪个页面注册为项目的首页
AppRegistry.registerComponent('rn_douban', () => App);
MyHomePage.js
// 在 RN 中只能使用 .js 作为 组件的后缀名,不能使用 .jsx
import React, { Component } from 'react'
// View 组件负责布局,就好比 网页中的 div 元素
import { View, Text } from 'react-native'
export default class MyHomePage extends Component {
// constructor 一般也推荐都写出来
constructor(props) {
super(props)
this.state = {}
}
// 必须有 render 函数
render() {
// 1, 在 RN 中,不能使用 网页中的 所有标签,像 div , p , img不能用
// 2. 如果想要实现布局, RN 提供了 View 的组件,来实现布局;RN 提供了一系列基础的组件,来方便程序员的开发,如果想要使用这些组件,只需 按需 把 组件 从 'react-native' 中导入即可
return <View>
{/* 在 RN 中,所有的文本,必须使用 RN 提供的 Text 组件进行包裹;否则会报错 */}
<Text>123456~~~~~</Text>
</View>
}
}
app.js
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
// 导入 React 基础包,这个包,作用是创建 组件
import React, { Component } from 'react';
// 从 react-native 中导入系统开发需要的包
import {
Platform, // 用来提供平台检测功能的
StyleSheet, // 样式相关的组件,专门用来创建样式的
Text, // 文本节点,所有文本必须放到这个里面
View, // 用来布局的,相当于 div
TextInput, // 文本框组件
Image, // 图片组件
Button, // 按钮组件
ActivityIndicator, // 加载中的 loading 效果小圆圈
ScrollView, // 滚动组件(默认,如果一个RN的页面非常长,超出了屏幕高度,这时候,不会像网页中那样自动提供滚动条,如果需要让页面实现滚动的话,需要使用 ScrollView 把页面包裹起来)
} from 'react-native';
const instructions = Platform.select({
ios: 'Press Cmd+R to reload,\n' +
'Cmd+D or shake for dev menu',
android: 'Double tap R on your keyboard to reload,\n' +
'Shake or press menu button for dev menu',
});
// 这是 TS(TypeScript) 的语法
export default class App extends Component {
render() {
return (
<View style={styles.container}>
{/* 如果使用 animating 隐藏 loading效果,只是让他不可见了,但是区域还在 */}
<ScrollView style={{width: '100%'}}>
<ActivityIndicator color="red" size="large" animating={true}></ActivityIndicator>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit App.js
</Text>
<Text style={styles.instructions}>
{instructions}
</Text>
<TextInput style={styles.inputStyle} defaultValue="哈哈,今天总有人在后面说话" secureTextEntry={true}></TextInput>
{/* 引入本地的图片资源 */}
<Image source={require('./images/1.jpg')}></Image>
<Image source={require('./images/1.jpg')}></Image>
<Image source={require('./images/1.jpg')}></Image>
<Image source={require('./images/1.jpg')}></Image>
{/* 引入网络中的图片资源,除了要指定 一个 uri 资源路径之外,还需要 为这张网络图片,指定宽和高,否则显示不出来; */}
<Image source={{ uri: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=358796479,4085336161&fm=200&gp=0.jpg' }} style={{ width: 200, height: 160 }}></Image>
{/* 在 Button 按钮中, title 属性 和 onPress 属性是必须的 */}
{/* onPress 表示点击按钮,要触发的操作 */}
<Button title="这是一个按钮" onPress={() => { console.warn('123') }}></Button>
</ScrollView>
</View>
);
}
}
// 使用 StyleSheet.create 创建样式表对象,可以为 create 传递 一个配置对象,这个对象,就是要创建的样式
const styles = StyleSheet.create({
container: {
flex: 1,
// 在RN中,主轴默认是纵向的
justifyContent: 'flex-start', // 一些 文本类型的 样式值,需要使用 引号包裹起来
alignItems: 'flex-start',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20, // 长度单位的 px 值可以省略,因为 RN 默认就是以 px 作为单位的
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
inputStyle: {
width: '100%'
}
});
// 总结:如果要定义一个基本的 RN 页面:需要的步骤:
// 1. 导入 react 包,来创建组件
// 2. 导入 react-native 包,来提供基础的开发组件
// 3. 从 react-naitve 中,可以导入 StyleSheet 的组件,用它 的 create 方法,可以创建样式对象
// 4. 使用 react 基础的语法,创建出来的组件,就是一个 合法的 RN 组件页面;如果想要在页面中,放置一些合法的 页面元素,只能使用 RN 库提供的 固有组件;不能使用 网页中的 任何 元素;
react-native简单使用的更多相关文章
- React Native中的网络请求fetch和简单封装
React Native中的网络请求fetch使用方法最为简单,但却可以实现大多数的网络请求,需要了解更多的可以访问: https://segmentfault.com/a/1190000003810 ...
- React Native之Fetch简单封装、获取网络状态
1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是 ...
- React Native超简单完整示例-tabs、页面导航、热更新、用户行为分析
初学React Native,如果没有人指引,会发现好多东西无从下手,但当有人指引后,会发现其实很简单.这也是本人写这篇博客的主要原因,希望能帮到初学者. 本文不会介绍如何搭建开发环境,如果你还没有搭 ...
- React Native环境配置和简单使用
# 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会 ...
- React Native ——实现一个简单的抓取github上的项目数据列表
/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; var React ...
- React Native ——入门环境搭配以及简单实例
一.Homebrew 是OS X 的套件管理器. 首先我们需要获取 Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent. ...
- react native 导航器 Navigator 简单的例子
最近学习react native 是在为全栈工程师而努力,看网上把react native说的各种好,忍不住学习了一把.总体感觉还可以,特别是可以开发android和ios这点非常厉害,刚开始入门需要 ...
- React Native环境配置之Windows版本搭建
接近年底了,回想这一年都做了啥,学习了啥,然后突然发现,这一年买了不少书,看是看了,就没有完整看完的.悲催. 然后,最近项目也不是很紧了,所以抽空学习了H5.自学啃书还是很无趣的,虽然Head Fir ...
- 【腾讯Bugly干货分享】React Native项目实战总结
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...
- React Native环境搭建以及几个基础控件的使用
之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...
随机推荐
- Cacti 安装插件
Cacti本身可以以图形化界面显示出流量状态,cacti也可以安装插件,通过插件,cacti的功能被进一步强大:可以监控服务器状态:发送邮件通知:短信通知等. 0.88之 ...
- css实现文字过长显示省略号的方法
<div class="title">当对象内文本溢出时显示省略标记</div> 这是一个例子,其实我们只需要显示如下长度: css实现网页中文字过长截取. ...
- ElasticSearch集群-Windows
概述 ES集群是一个P2类型的分布式系统,除了集群状态管理以外,其他所有的请求都可以发送到集群内任意一台节点上,这个节点可以自己找到需要转发给哪些节点,并且直接跟这些节点通信.所以,从网络架构及服务配 ...
- 利用VS Code在Azure上构建部署静态页面
0x00 前言 前一段时间,我找到了Jendrik Illner的个人网站.除了那里的精彩文章,网站的主题也吸引了我的注意力,而且我发现该网站的主题采用了Hugo的Academic主题. 然后,我认为 ...
- Caliburn.Micro框架之Action Convertions
首先新建一个项目,名称叫Caliburn.Micro.ActionConvertions 然后删掉MainWindow.xaml 然后去app.xaml删掉StartupUri这行代码 其次,安装Ca ...
- smartforms设置表格脚标在最后一页显示
用户打印采购订单时,末尾计算一个合计金额,但是有多页时,合计显示在了每一页,现在希望合计项只显示在表格最后一行就可以. smartforms调整表格,将总计放在脚标内,设置脚标输出打印[在表结束处]即 ...
- sklearn使用小贴士
1 sklearn简介 Scikit-learn(sklearn)是机器学习中的第三方模块,封装了常用的机器学习算法,涉及回归.降维.分类以及聚类等,提供python接口. 虽然sklearn容纳的算 ...
- 软件模拟spi的注意事项
前几天遇到了软件模拟spi的时候,读和写不一致的现象,后来仔细研究了一下,其实是时序性问题不对. spi的有四种时序,硬件实现的时候,很简单,初始化后直接调用api即可.但是软件模拟就比较麻烦. 举例 ...
- ts中类的方法和抽象类
// 类里面的修饰符 typescript提供三种修饰符 /* public: 公有 在类里面.类外面.子类都可以访问 (默认不加就是public) protected: 保护 在类里面和子类可以访问 ...
- minio gateway 代理s3 存储
以前有写过使用minio gataway 代理nas 的,实际上还可以代理s3 ,hdfs....,以下是一个gatway 带来nas 以及s3 集成的模式 环境准备 docker-compose文件 ...