RN学习笔记 📅 发布时间:2026/7/8 1:56:00 👁️ 浏览次数: React NativeRN采用JavaScript编写应用逻辑利用React框架构建UI。在运行时RN通过桥接机制将JavaScript代码与原生平台代码进行通信。对于iOS和AndroidRN分别有对应的原生渲染引擎。在iOS上它利用iOS的原生UI组件和API在Android上则使用Android的原生UI组件和API。这样RN代码在不同平台上可以调用各自平台的原生能力实现界面渲染和功能交互。当开发者编写一个按钮组件时RN会根据当前运行的平台将这个按钮渲染为iOS风格或Android风格的原生按钮。这一过程中RN的桥接机制起到关键作用它负责将JavaScript层的指令传递给原生层同时将原生层的事件和数据反馈给JavaScript层。React Native UI 组件Android 原生视图iOS 原生视图Web 标签说明ViewViewGroupUIViewA non-scrollingdiv不支持滚动支持flexbox、触摸处理和无障碍性控件的容器TextTextViewUITextViewp显示、样式和嵌套文本字符串甚至处理触摸事件ImageImageViewUIImageViewimg显示不同类型的图片ScrollViewScrollViewUIScrollViewdiv一个通用的滚动容器可以包含多个组件和视图,适合用来显示数量不多的滚动元素立即渲染所有元素TextInputEditTextUITextFieldinput typetext使用户可以输入文本FlatList显示较长的滚动列表,性能更好垂直的滚动列表其中的元素之间结构近似而仅数据不同FlatList并不立即渲染所有元素而是优先渲染屏幕上可见的元素SectionList可以分组的listReact基础components 组件、JSX、props 属性、state 状态Function Compomentsimport React from react;import { Text } from react-native;const Cat () {// 这个函数的返回值就会被渲染为一个 React 元素return (TextHello, I am your cat!/Text);}// 使用了export default语句来导出这个组件以使其可以在其他地方引入使用export default Cat;Class Compomentsimport React, { Component } from react;import { Text } from react-native;// 定义组件首先要继承(extends)自Componentclass Cat extends Component {// Class 组件必须有一个render()函数它的返回值会被渲染为一个 React 元素render() {return (TextHello, I am your cat!/Text);}}export default Cat;JSX: JavaScript XML一种在React组件内部构建标签的类XML语法。JSX为react.js开发的一套语法糖也是react.js的使用基础。React在不使用JSX的情况下一样可以工作然而使用JSX可以提高组件的可读性// 使用JSrender:function (){return React.createElement(div, {className: divider},Label Text,React.createElement(hr));}// 使用JSXrender:function (){return div classNamedividerLabbel Texthr//div}在 React Native 0.71 版本之前JSX 语法糖的实质是调用React.createElement方法所以你必须在文件头部引用import React from react。但在 React Native 0.71 版本之后官方引入了新的 JSX 转换可以不用再在文件头部写import React from react。Props是“properties”属性的简写。Props 使得我们可以定制组件import React from react;import { Text, View } from react-native;const Cat (props) {return (ViewTextHello, I am {props.name}!/Text/View);}const Cafe () {return (ViewCat nameMaru /Cat nameJellylorum /Cat nameSpot //View);}export default Cafe;State 状态如果把 props 理解为定制组件渲染的参数 那么state就像是组件的私人数据记录。状态用于记录那些随时间或者用户交互而变化的数据。Function Componentsimport React, { useState } from react;import { Button, Text, View } from react-native;const Cat (props) {const [isHungry, setIsHungry] useState(true);return (ViewTextI am {props.name}, and I am {isHungry ? hungry : full}!/TextButtononPress{() {setIsHungry(false);}}disabled{!isHungry}title{isHungry ? Pour me some milk, please! : Thank you!}//View);}const Cafe () {return (Cat nameMunkustrap /Cat nameSpot //);}export default Cafe;Class Componentsimport React, { Component } from react;import { Button, Text, View } from react-native;class Cat extends Component {state { isHungry: true };render() {return (ViewTextI am {this.props.name}, and I am{this.state.isHungry ? hungry : full}!/TextButtononPress{() {this.setState({ isHungry: false });}}disabled{!this.state.isHungry}title{this.state.isHungry ? Pour me some milk, please! : Thank you!}//View);}}class Cafe extends Component {render() {return (Cat nameMunkustrap /Cat nameSpot //);}}export default Cafe;Platform 模块React Native 提供了一个检测当前运行平台的模块Platform.OS在 iOS 上会返回ios而在 Android 设备或模拟器上则会返回androidPlatform.select()它可以以 Platform.OS 为 key从传入的对象中返回对应平台的值import {Platform, StyleSheet} from react-native;const styles StyleSheet.create({height: Platform.OS ios ? 200 : 100,});Platform.Version // Android 版本、iOS 版本特定平台后缀当不同平台的代码逻辑较为复杂时最好是放到不同的文件里这时候我们可以使用特定平台后缀。React Native 会检测某个文件是否具有.ios.或是.android.的后缀然后根据当前运行的平台自动加载正确对应的文件。BigButton.ios.jsBigButton.android.jsimport BigButton from ./BigButton; // 去掉平台后缀直接引用
用Python解锁《红楼梦》的文本密码:从分卷到TF-IDF关键词分析 作为中国古典小说的巅峰之作,《红楼梦》的文本深处藏着无数值得挖掘的细节。如果说传统的文本分析靠的是逐字逐句的品读,那么用Python来分析《红楼梦》,则能让我们以更高效、更量化的方式解锁这部经典的文本密码。今天就来分享一套完整的《红… 2026/7/7 5:00:44
十年老兵被 AI 工具 “颠覆” 了认知,使用IntelliJ IDEA集成AI工具,自动写代码,生成项目,也太爽了 一、十年老兵被 AI 工具 “颠覆” 了认知 做 Java 开发十年,从手写 SSH 框架配置到 Spring Boot 自动装配,亲历了开发效率的一次次飞跃,但始终逃不过这些 “重复性折磨”: 新建项目时,要手动搭架构、导依赖、写配置&… 2026/7/7 17:59:46
SSH暴力破解与弱口令攻击分析:一次由弱口令引发的测试服沦陷 1. 攻击链还原信息收集 (低成本):攻击者使用 masscan、nmap等工具对目标IP段进行端口扫描,发现一台服务器(测试服)开放了 22端口。暴力破解 (极低成本):攻击者使用 hydra、medusa等工具,加载常见的用户名列… 2026/7/4 7:18:30
【OpenHarmony/HarmonyOs 】错题本功能从 0 到 1:答题记录、去重收录与复习闭环 【OpenHarmony/HarmonyOs 】错题本功能从 0 到 1:答题记录、去重收录与复习闭环 错题本是学习 App 里非常实用的功能。用户不是只需要“做题”,更需要知道自己错在哪里、后面怎么复习。本文结合我的「化学视界」项目,记录我是如何开发错题本功… 2026/7/8 1:55:20
音视频编解码:VP8 / VP9 / H.264 / Opus 音视频编解码:VP8 / VP9 / H.264 / Opus WebRTC 支持哪些音视频编解码器?各有什么优缺点?怎么选?码率怎么设?这篇讲 WebRTC 常用的视频编码(VP8/VP9/H.264/AV1)和音频编码(Opus/G.71… 2026/7/8 1:55:20
AutoJS6 + Shizuku 实战:淘金币自动签到与任务脚本 🚀 目标:实现淘金币自动签到,自动做任务。 autojs 简介 autojs 安卓平台 JavaScript 自动化工具。 版本选择 autojs 涉及多个版本,下面介绍简单下。 autojs 原版 Auto.js 官网如下,但因项目年代和分支不同,情况有些特殊。 官方论坛 / 官网:https://www.autojs.or… 2026/7/8 1:51:19
CIFAR-10/100 数据集实战:PyTorch 与 TensorFlow 加载对比与 3 种预处理技巧 CIFAR-10/100 数据集实战:PyTorch 与 TensorFlow 加载对比与 3 种预处理技巧当你在深夜调试一个图像分类模型时,突然发现验证集准确率卡在60%死活上不去——这可能不是模型架构的问题,而是数据加载和预处理环节埋了雷。CIFAR-10和CIFAR-100作… 2026/7/8 1:49:18
深度解析ChanlunX缠论插件:量化交易者的技术分析利器 深度解析ChanlunX缠论插件:量化交易者的技术分析利器 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一款基于缠中说禅理论的专业级通达信技术分析插件,通过C实现核心算… 2026/7/8 1:47:18
P1435 回文字串【洛谷算法习题】 P1435 回文字串 网页链接 P1435 回文字串 题目背景 IOI2000 第一题 题目描述 回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。 … 2026/7/8 1:47:18
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58