React Native (RN)的学习上手教程

什么是 React Native?

React Native 是由 Facebook 开发的开源框架,允许开发者使用 JavaScript 和 React 构建原生移动应用。它的口号是"学习一次,编写任何平台"。

React Native 的优势

  • 跨平台开发:一套代码可以同时运行在 iOS 和 Android 平台
  • 使用 JavaScript:无需学习 Swift、Objective-C 或 Java/Kotlin
  • 热重载:实时查看代码更改效果
  • 社区活跃:大量的第三方库和组件
  • 原生性能:渲染为原生 UI 组件,而非 WebView

环境搭建

  1. 安装 Node.js 和 npm

  2. 安装 React Native CLI

    bash 复制代码
    npm install -g react-native-cli
  3. 安装平台开发环境

    • iOS:需要 macOS、Xcode
    • Android:需要 Android Studio、JDK、Android SDK
  4. 使用 Expo(可选)

    • 对于初学者,可以使用 Expo 工具简化开发流程
    bash 复制代码
    npm install -g expo-cli

React Native 基础概念

组件(Components)

React Native 应用由组件构成,组件可以是:

  • 函数组件:简单的 JavaScript 函数
  • 类组件:继承自 React.Component 的类

状态(State)和属性(Props)

  • Props:从父组件传递给子组件的数据
  • State:组件内部可以改变的数据

样式(Style)

React Native 使用类似 CSS 的样式,但采用驼峰命名法。

创建第一个 RN 应用

使用 React Native CLI:

bash 复制代码
npx react-native init MyFirstApp
cd MyFirstApp
npx react-native run-android  # 或 run-ios

使用 Expo CLI:

bash 复制代码
expo init MyFirstApp
cd MyFirstApp
expo start

基本应用代码:

javascript 复制代码
import React from 'react';
import { View, Text, StyleSheet, Button } from 'react-native';

const App = () => {
  const [count, setCount] = React.useState(0);

  return (
    <View style={styles.container}>
      <Text style={styles.title}>我的第一个 React Native 应用</Text>
      <Text style={styles.counter}>计数器:{count}</Text>
      <Button title="增加" onPress={() => setCount(count + 1)} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  title: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  counter: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 20,
  },
});

export default App;

常用组件

  • View:类似于 div,容器组件
  • Text:文本组件
  • Image:图片组件
  • ScrollView:可滚动的容器
  • FlatList:高性能列表组件
  • TextInput:文本输入框
  • TouchableOpacity:透明度反馈的触摸组件
  • Button:按钮组件

布局

React Native 使用 Flexbox 进行布局:

  • flex:定义组件如何填充可用空间
  • flexDirection:定义子元素的排列方向
  • justifyContent:定义子元素在主轴上的对齐方式
  • alignItems:定义子元素在交叉轴上的对齐方式

学习资源

相关推荐
辰海Coding18 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林18 小时前
cp520靶场学习笔记
android·笔记·学习
心中有国也有家19 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
前端若水19 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Upsy-Daisy19 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
放下华子我只抽RuiKe520 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
LuminousCPP21 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
魔法阵维护师21 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#
_李小白1 天前
【android opencv学习笔记】Day 17: 目标追踪(MeanShift)
android·opencv·学习
一只机电自动化菜鸟1 天前
一建机电备考笔记(40) 建筑机电施工—排水管道施工(含考频+题型)
经验分享·笔记·学习·职场和发展·课程设计