博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React Native上手
阅读量:7085 次
发布时间:2019-06-28

本文共 2116 字,大约阅读时间需要 7 分钟。

组件类型

View: 容器组件

Text: 文本组件
TouchableWithoutFeedback: 点击组件,默认不做点击响应,还有其他类型组件,比如TouchableHighlight FlatList: 列表组件
TextInput: 输入框组件,支持多行
ScrollView: 滚动区域组件
常用的大概就这些,对于组件,会有不同的用法,比如文字只能放在Text里使用,数组数据只有传到FlatList里才能正常使用,点击事件只有在Touch开头的容器里才会生效。引入方式,比如:
import { Text, View } from 'react-native'; 具体可以直接上官网:

触发事件

也是特定的组件才能触发的,比如onChangeText,规定只有TextInput组件触发

onPress:触摸
onLongPress: 长按
onSubmitEditing: 会在文本被提交后(用户按下软键盘上的提交键)调用

原生外援

如果你需要针对应用的某一部分特别优化,中途换用原生代码编写也很容易。 想要应用的一部分用原生,一部分用React Native也完全没问题 —— Facebook的应用就是这么做的。

import React, { Component } from 'react';import { Text, View } from 'react-native';import { TheGreatestComponentInTheWorld } from './your-native-code';class SomethingFast extends Component {    render() {        return (            
上面这个TheGreatestComponentInTheWorld组件完全可以使用原生Objective-C、Java或是Swift来编写 - 开发流程并无二致。
); }}复制代码

网络请求

Fetch 方法会返回一个Promise,这种模式可以简化异步风格的代码,需要注意的是,安全机制与网页环境有所不同:在应用中你可以访问任何网站,没有跨域的限制。

fetch('https://mywebsite.com/endpoint/', {  method: 'POST',  headers: {    Accept: 'application/json',    'Content-Type': 'application/json',  },  body: JSON.stringify({    firstParam: 'yourValue',    secondParam: 'yourOtherValue',  }),});复制代码

fetch api

var request = new XMLHttpRequest();request.onreadystatechange = (e) => {  if (request.readyState !== 4) {    return;  }  if (request.status === 200) {    console.log('success', request.responseText);  } else {    console.warn('error');  }};request.open('GET', 'https://mywebsite.com/endpoint/');request.send();复制代码

request send

Props和State

React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。 React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。

Fixed 尺寸 & Flex 尺寸

export default class FlexDimensionsBasics extends Component {  render() {    return (      // Try removing the `flex: 1` on the parent View.      // The parent will not have dimensions, so the children can't expand.      // What if you add `height: 300` instead of `flex: 1`?      
); }}复制代码

转载地址:http://oegml.baihongyu.com/

你可能感兴趣的文章
[转] 详解webpack-dev-server的使用
查看>>
【leetcode】491. Increasing Subsequences
查看>>
dp入门(先摆在这里,之后细细读)
查看>>
域名删除时间常识
查看>>
springmvc自定义日期编辑器
查看>>
CSS-移动端页面(响应式)
查看>>
微信小程序分页加载数据~上拉加载更多~小程序云数据库的分页加载
查看>>
iOS下JS与OC互相调用(四)--JavaScriptCore
查看>>
Tomcat设置为系统服务,并随系统自动启动服务
查看>>
leetcode-438-Find All Anagrams in a String
查看>>
iOS逆向之旅(进阶篇) — HOOK(Method Swizzling)
查看>>
video视频播放的关于blob小问题
查看>>
2019web前端全新面试题及答案
查看>>
静态化
查看>>
小猿圈之Linux下Mysql 操作命令
查看>>
程序员:这都什么时代了,还要求手写代码
查看>>
论文笔记【三】A Deep Dive into Word Sense Disambiguation with LSTM
查看>>
测试七 赛后感受
查看>>
day09 函数
查看>>
Hadoop体系架构简介
查看>>