react native

简介

React Native 就是使用React和应用平台的原生功能来构建 Android 和 iOS 应用的开源框架。在 Android 和 iOS 开发中,一个视图是 UI 的基本组成部分,React 组件通过 JavaScript 来调用这些视图。可以构建自己的 Native Components(原生组件),也可以使用 React Native 提供的基本的原生组件,也称为 React Native 的核心组件。

核心组件

主要的核心组件:

<View> <Text> <Image source={{uri: ''}}> <ScrollView> <TextInput>

相当于:

无滚动<div>      <p>       <img>           滚动<div>        <input>
TextInput

onChangeText 接收函数,文本变化时调用

onSubmitEditing 文本提交时调用

Button

onPress 触摸/点击

ScrollViews

pagingEnabled 滑动分页

ios中包含单个子元素可以进行缩放,maximumZoomScale minimumZoomScale

ScrollView 用来展示数量不多的元素

android中可以用ViewPaper组件水平滑动视图

FlatList

长列表,优先渲染屏幕上可见元素

data renderItem

SectionList

长列表,带分组标签

添加 renderSectionHeader

区分平台
Platform
// 样式
Platform.OS == 当前平台(eg: ios/android)
// 当前平台作为key,可返回样式/组件
Platform.select({ios: {}, // () => require('ComponentIOS')android: {}, // () => require('ComponentAndroid')
})// 版本
Platform.Version == Android版本(eg: 25)
if (parseInt(Platform.Version, 10) <= 9) {} 
// parseInt(Platform.Version, 10) 如Platform.Version为'10.3',返回10
平台后缀
// Button.ios.js   Button.android.js  根据后缀自动识别ios/android组件
// Button.js   Button.native.js   自动识别web/(ios/android)组件
import Button from './Button'

环境配置与运行

开发:macOS VScode/Xcode 展示:IOS虚拟机

需要下载:

node@18 watchman Xcode CocoaPods react-native-cli yarn

// 安装node18
brew install node@18
// 或者
npx install 18 
npx use 18brew install watchman// npm
npm config get registry // 查看自己的npm源
npm config set registry XXX // 更换npm源,XXX为地址,如下
// http://registry.npm.taobao.org/  国内淘宝镜像
// http://registry.cnpmjs.org/  国内官方镜像
// https://registry.npmjs.org/  还原
npx nrm use taobaonpm install -g yarn
brew install cocoapods
npm install -g react-native-cli
npx react-native@latest init MyProject // 创建/初始化项目// 在Xcode IOS虚拟机上运行
yarn react-native run-ios
// 或者
yarn ios
// 未修改文件,不需再次编译可以用
yarn start

Xcode确保有虚拟机

在这里插入图片描述

运行成功:

在这里插入图片描述

快捷键

cmd+R 刷新,展示最新代码运行效果

cmd+D 打开开发菜单

UI&交互

样式
import { StyleSheet, View, Text } from 'react-native'
const Texts = () => {return (<View style={styles.container}><Text style={styles.red}></Text><Text style={[styles.red, styles.blue]}></Text></View>)
}
// []中后者(styles.blue)样式优先级更高
const styles = StyleSheet.create({container: {marginTop: 20,},.red {color: 'red',},.blue {color: 'blue',                               }
})
尺寸

设置width、height,RN中尺寸无单位。

使用flex动态设置时,flex:1表示组件撑满所在空间;父组件设置固定(width&height)/flex前提下,多个并列子组件设置flex:1则平分父容器的剩余空间,设置的flex值不一样则按照比例分配剩余空间。

百分比宽高,父容器必须设置尺寸。

Flexbox
flexDirection:确定主轴

column(竖直)/row(水平)/column-reverse/row-reverse

direction:从左到右/从右到左

ltr/rtl

justifyContent:在主轴(列)上的排列方式

flex-start/flex-end/center/space-between/space-around/space-evenly

alignItems:子元素在次轴的排列方式

stretch/flex-start/flexx-end/center/baseline

alignSelf:单个子元素在父级中的对齐方式

stretch/flex-start/flexx-end/center/baseline

alignContent:沿次轴分布行

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

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

相关文章

鸿蒙操作系统-初识

HarmonyOS-初识 简述安装配置hello world1.创建项目2.目录解释3.构建页面4.真机运行 应用程序包共享包HARHSP 快速修复包 官方文档请参考&#xff1a;HarmonyOS 简述 1.定义&#xff1a;HarmonyOS是分布式操作系统&#xff0c;它旨在为不同类型的智能设备提供统一的操作系统&a…

WebAR开发简介

WebAR 开发使企业能够以独特且高度有趣的方式向客户和员工提供信息。 它提供增强现实 (AR) 内容&#xff0c;人们在智能手机上将其视为视觉叠加。 然而&#xff0c;WebAR 可在手机的普通网络浏览器上运行&#xff0c;无需下载任何应用程序。 WebAR 的多种用途包括帮助零售和在…

深度学习的发展历史(深度学习入门、学习指导)

目录 &#x1f3c0;前言 ⚽历史 第一代神经网络&#xff08;1958-1969&#xff09; 第二代神经网络&#xff08;1986-1998&#xff09; 统计学习方法的春天&#xff08;1986-2006&#xff09; 第三代神经网络——DL&#xff08;2006-至今&#xff09; &#x1f3d0;总结…

2010年之前电脑ubuntu安装nvidia驱动黑屏处理

装好驱动 仿真fps直接到60Hz 陈旧设备 都是非常老旧的电脑&#xff0c;没钱换新电脑&#xff0c;就这么穷…… 电脑详细配置&#xff1a; 冲动 想装显卡驱动提升一下性能&#xff0c;结果……黑了 黑习惯了也无所谓&#xff0c;几分钟就能解决&#xff0c;关键还是太穷&…

docker快速安装Es和kibana

文章目录 概要一、Es二、kibana三、dcoker compose管理四、参考 概要 在工作过程中&#xff0c;经常需要测试环境搭建Es环境&#xff0c;本文基于Es V8.12.2来演示如何快速搭建单节点Es和kibana。 服务器默认已按装docker 一、Es 1&#xff1a;拉取镜像 docker pull elast…

小程序富文本图片宽度自适应

解决这个问题 创建一个util.js文件,图片的最大宽度设置为100%就行了 function formatRichText(html) {let newContent html.replace(/\<img/gi, <img style"max-width:100%;height:auto;display:block;");return newContent; }module.exports {formatRichT…

1.4.1 着色器

着色器&#xff08;Shader&#xff09;是运行在GPU上的小程序&#xff0c;这些小程序为图形渲染管线的某个特定部分而运行&#xff0c;从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。 一、着色器类QOpenGLShaderProgram QOpenGLShaderProgram是Qt中对着…

Elasticsearch入门及常用命令和Spring中的常用操作

入门 官网 简介 一个分布式的、Restful风格的搜索引擎。支持对各种类型的数据的检索。搜索速度快&#xff0c;可以提供实时的搜索服务。便于水平扩展&#xff0c;每秒可以处理PB级海量数据。 常用术语 索引&#xff1a;与MySQL数据库中的Database相对应类型&#xff1a;与…

【计算机网络】IP 协议

网络层IP协议 一、认识 IP 地址二、IP 协议报头格式三、网段划分1. 初识子网划分2. 理解子网划分3. 子网掩码4. 特殊的 IP 地址5. IP 地址的数量限制6. 私有 IP 地址和公网 IP 地址7. 理解全球网络&#xff08;1&#xff09;理解公网&#xff08;2&#xff09;理解私网&#xf…

MySQL---存储过程详解

目录 一、介绍 二、基础语法 三、变量 四、流程控制 五、参数 六、游标 七、条件处理程序 八、存储函数 一、介绍 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合&#xff0c;调用存储过程可以简化应用开发人员的很多工作&#xff0c;减少数据在数据库和…

科技引领趋势:3D元宇宙展厅在各行业中的应用及其未来展望

随着技术的不断进步&#xff0c;3D元宇宙展厅正逐渐成为各行各业展示产品的新选择。相较于传统的线下展厅&#xff0c;3D元宇宙展厅以其独特的优势&#xff0c;为产品展示和品牌推广提供了全新的可能性。 一、虚拟与现实的完美融合 3D元宇宙展厅是指在虚拟世界中构建的三维展览…

I/O(输入/输出流的概述)

文章目录 前言一、流的概述二、输入/输出流 1.字节/字符输入流2.字节/字符输出流总结 前言 在变量、数组和对象中储存的数据是暂时的&#xff0c;程序结束后它们就会丢失。如果想要永久地储存程序创建的数据&#xff0c;需要将其保存在磁盘文件中&#xff0c;这样就可以在程序中…

Java框架安全篇--Shiro-550漏洞

Java框架安全篇--Shiro-550漏洞 Shiro反序列化源码可以提取&#xff1a; https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4 JAVA反序列化就不说了&#xff0c;可以参考前面文章 https://blog.csdn.net/m0_63138919/article/details/136751184 初始Apache Sh…

OC 技术 苹果内购

一直觉得自己写的不是技术&#xff0c;而是情怀&#xff0c;一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的&#xff0c;希望我的这条路能让你们少走弯路&#xff0c;希望我能帮你们抹去知识的蒙尘&#xff0c;希望我能帮你们理清知识的脉络&#xff0…

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法

目录 1.简单了解vim 2.vim的模式 2.1命令模式 2.2插入模式 2.3底行模式 3.vim各模式下的命令集 3.1正常&#xff08;命令模式下&#xff09; 3.1.1光标定位命令 3.1.2 复制粘贴 3.1.3 删除 3.1.4 撤销 3.1.5大小写转换 3.1.6替换 「R」&#xff1a;替换光标所到之处的字符&…

使用llamafile 构建本地大模型运用

安装 https://github.com/Mozilla-Ocho/llamafile 下载 大模型文件&#xff0c;选择列表中任意一个 wget https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue https://github.com/Mozilla-Ocho/llamafile?tabre…

Element UI中日期选择日(date-picker)等其他选择器下拉显示错位、位置错误解决

省流版 给选择器加上唯一key&#xff08;下面的想看就看&#xff09; 问题复现 需求是用一个下拉切换时间维度的选择&#xff0c;分别为年度、季度、月度&#xff0c;但是开发的时候发现&#xff0c;当切换的时候&#xff0c;视图可正常切换&#xff0c;但点击选择时却发现选…

基于nginx 动态 URL反向代理的实现

背景&#xff1a; 我们在项目中在这样一个场景&#xff0c;用户需要使用固定的软件资源&#xff0c;这些资源是以服务器或者以容器形式存在的。 资源以webAPI方式在内网向外提供接口&#xff0c;资源分类多种类型&#xff0c;每种类型的资源程序和Wapi参数都一样。这些资源部属…

STL —— string(3)

目录 1. 使用 1.1 c_str() 1.2 find() & rfind() 1.3 substr() 1.4 打印网址的协议域名等 1.5 find_first_of() 2. string() 模拟实现 2.1 构造函数的模拟实现 2.2 operator[] 和 iterator 的模拟实现 2.3 push_back() & append() & 的模拟实现 2.4 ins…

sqlite3嵌入式开发板命令行方式使用

如何在编译嵌入式版本的sqlite3&#xff0c;请看我上一篇文章 sqlite3 交叉编译-CSDN博客 一、sqlite3命令行方式使用 假如我将编译好的嵌入式的sqlite3放置在如下路径&#xff1a; 进入bin目录进行操作 1.运行sqlite3 运行sqlite3有两种方式 1&#xff09;直接在内存里面…