Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React Native跨平台开发实战:从零到一

React Native跨平台开发实战:从零到一

原创
作者头像
天涯学馆
发布于 2024-06-02 08:44:53
发布于 2024-06-02 08:44:53
5910
举报
文章被收录于专栏:Web大前端Web大前端

最近在学习React Native跨平台开发,从零开始如何开发第一个基础应用并打包发布:

1. 环境准备

  • 安装Node.js
  • 安装React Native CLI
  • 设置AndroidiOS开发环境(取决于你想要支持的平台)

2. 创建新项目 使用React Native CLI创建一个新的项目:

代码语言:sh
AI代码解释
复制
   npx react-native init MyProject

3. 检查项目结构 新项目会包含以下关键文件和目录:

  • index.js: 应用的入口点
  • App.js: 应用的主要组件
  • android和ios目录:分别包含Android和iOS平台的项目配置
  • package.json: 项目的依赖和元数据

4. 运行应用

对于Android:

代码语言:sh
AI代码解释
复制
     npx react-native run-android

对于iOS:

代码语言:sh
AI代码解释
复制
     npx react-native run-ios

5. 编写你的第一个组件

打开App.js,替换默认内容,创建一个简单的Hello World组件:

代码语言:jsx
AI代码解释
复制
   import React from 'react';
   import { View, Text } from 'react-native';

   const App = () => {
     return (
       <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
         <Text>Hello, React Native!</Text>
       </View>
     );
   };

   export default App;

6. 添加样式 可以在App.js中或者单独的styles.js文件中添加CSS样式:

代码语言:jsx
AI代码解释
复制
   import React from 'react';
   import { View, Text, StyleSheet } from 'react-native';

   const styles = StyleSheet.create({
     container: {
       flex: 1,
       justifyContent: 'center',
       alignItems: 'center',
       backgroundColor: '#F5FCFF',
     },
   });

   const App = () => {
     return (
       <View style={styles.container}>
         <Text style={{ fontSize: 20, color: 'blue' }}>Hello, React Native!</Text>
       </View>
     );
   };

   export default App;

7. 安装第三方库

假设我们想要使用react-native-vector-icons库来添加图标:

代码语言:sh
AI代码解释
复制
   npm install react-native-vector-icons
   npx react-native link react-native-vector-icons

8. 使用第三方库 更新App.js以引入图标:

代码语言:jsx
AI代码解释
复制
   import React from 'react';
   import { View, Text } from 'react-native';
   import Icon from 'react-native-vector-icons/Ionicons';

   const App = () => {
     return (
       <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
         <Icon name="md-heart" size={32} color="#900" />
         <Text style={{ fontSize: 20, color: 'blue' }}>Hello, React Native!</Text>
       </View>
     );
   };

   export default App;

9. 运行并测试 每次修改后,重新运行应用以查看更改。

10. 添加路由和导航

为了在应用中实现页面间的跳转,我们可以使用react-navigation库。首先安装:

代码语言:sh
AI代码解释
复制
    npm install @react-navigation/native
    npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

然后创建导航结构:

代码语言:jsx
AI代码解释
复制
    import React from 'react';
    import { NavigationContainer } from '@react-navigation/native';
    import { createStackNavigator } from '@react-navigation/stack';
    import HomeScreen from './screens/HomeScreen';
    import DetailsScreen from './screens/DetailsScreen';

    const Stack = createStackNavigator();

    const App = () => {
      return (
        <NavigationContainer>
          <Stack.Navigator>
            <Stack.Screen name="Home" component={HomeScreen} />
            <Stack.Screen name="Details" component={DetailsScreen} />
          </Stack.Navigator>
        </NavigationContainer>
      );
    };

    export default App;

screens目录下创建HomeScreen.jsDetailsScreen.js,并编写相应的组件。

11. 网络请求 使用axios库进行HTTP请求:

代码语言:sh
AI代码解释
复制
    npm install axios

在组件中发送请求:

代码语言:jsx
AI代码解释
复制
    import React, { useState, useEffect } from 'react';
    import axios from 'axios';

    const HomeScreen = () => {
      const [data, setData] = useState([]);

      useEffect(() => {
        axios.get('https://jsonplaceholder.typicode.com/posts')
          .then(response => setData(response.data))
          .catch(error => console.error(error));
      }, []);

      return (
        // 渲染数据
      );
    };

    export default HomeScreen;

12. 状态管理

使用Redux或MobX进行状态管理。这里以Redux为例:

代码语言:sh
AI代码解释
复制
    npm install redux react-redux
    npm install @reduxjs/toolkit

创建storeactionsreducers,然后在App.js中设置Provider

代码语言:jsx
AI代码解释
复制
    import React from 'react';
    import { Provider } from 'react-redux';
    import store from './store';

    const App = () => {
      return (
        <Provider store={store}>
          {/* 其他代码 */}
        </Provider>
      );
    };

    export default App;

13. 动画 使用react-native-reanimated库实现动画:

代码语言:sh
AI代码解释
复制
    npm install react-native-reanimated

在组件中添加动画效果:

代码语言:jsx
AI代码解释
复制
    import React from 'react';
    import { Animated, View, Text } from 'react-native';
    import { interpolate } from 'react-native-reanimated';

    const App = () => {
      const animatedValue = new Animated.Value(0);

      const opacity = interpolate(animatedValue, {
        inputRange: [0, 1],
        outputRange: [0, 1],
      });

      const animatedStyle = {
        opacity,
      };

      return (
        <Animated.View style={[animatedStyle]}>
          <Text>Hello, React Native!</Text>
        </Animated.View>
      );
    };

    export default App;

14. 性能优化

  • 使用PureComponent或React.memo减少不必要的渲染
  • 使用FlatList或SectionList进行长列表优化
  • 使用shouldComponentUpdate或useMemo、useCallback生命周期方法
  • 优化网络请求和图片加载
  • 适时使用AsyncStorage或redux-persist保存状态

15. 发布应用

  • Android:生成签名APK并上传到Google Play Console
  • iOS:配置Xcode并提交到App Store Connect

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React Native 导航:示例教程
移动应用程序由多个屏幕组成。在构建移动应用程序时,首要考虑的是如何处理用户在应用程序中的导航问题,例如屏幕的展示和屏幕之间的切换。
前端小智@大迁世界
2024/02/19
1.3K0
react-native导航组件
创建 src/navigation.js 文件,在其中添加一个导航器组件,以及两个屏幕组件 HomeScreen 和 ProfileScreen。同时在这两个屏幕组件中添加一个按钮,用于导航到另一个屏幕组件。
kongxx
2024/06/17
2400
React Native 导航:深入研究导航库
导航应该是流畅而直观的,使用户体验愉快。在React Native世界中,开发者可以选择使用几种导航库,其中两个重要的选择是React Navigation和React Native Navigation。我们将更详细地了解它们如何处理堆栈导航(Stack Navigation)和标签导航(Tab Navigation),这对于应用程序用户体验至关重要。
泽霖
2024/01/27
5740
Rn使用@react-navigation/native配置页面路由以及导航栏
这是我的项目文件目录 因为之前是个Vue开发者,项目目录会沿用熟悉的一套 在src目录下新建router文件夹 里面放置index.js,StackNavigator.js,TabNavigator.js三个文件夹 路由进行集中管理
明知山
2021/07/01
3.5K0
手把手教你如何自定义 React Native 底部导航栏
如果你觉得 React Navigation 默认 Tab 组件看起来太平淡,或者想创造一些更现代的东西,那么你想法就和我一样。 在本指南中,我将向你演示如何创建自定义标签栏以并与 React Navigation 一起使用。
前端小智@大迁世界
2019/04/25
8.1K0
手把手教你如何自定义 React Native  底部导航栏
4. Navigation实战
本来想写一个应用redux的Navigation实战,但是发现react-native有又新的更新,新手怕误导大家,就直接用了别人的组件,看看怎么应用吧。本次在github找了一个别人写好的组件react-native-router-flux,主要看看怎么集成到项目里,强烈推荐研读源码,还有一个别人项目里的,感觉也不错推荐。
MasterVin
2018/08/30
8570
4. Navigation实战
React-Navigation Integration with Redux
React-Navigation Integration with Redux Dependencies Main Navigation Components Reducers Example Actions Example Actual Usage in Container Components React-Navigation Integration with Redux Dependencies { "dependencies": { "@expo/samples": "
szhshp
2022/09/21
3260
React Native(一):基础
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用。(来自百度百科)
Helloted
2022/06/07
4340
React Native(一):基础
构建跨平台移动应用的终极指南
移动应用开发是一个充满活力的领域,为不同平台的移动设备提供了丰富的功能和体验。为了在多个平台上达到更广泛的用户群体,跨平台移动应用开发成为了一种流行的选择。本文将深入探讨跨平台移动应用开发的关键概念,为您提供一份全面的指南,并提供带有实际代码示例的技巧,以帮助您构建出色的移动应用。
海拥
2023/09/19
4260
构建跨平台移动应用的终极指南
打造属于自己的博客app——基于react native和博客园接口
关注react native这个技术很久了,去年就做了一个简单的Demo,最近有时间,重新了解了一下react native的现状,发现已经有很大的进步,现在完善了一下原有的项目,并重新开源共享一下。 背景 对react native这个技术关注很久了,去年也花了很长时间学习,但中途因为时间问题没有进行更深入的学习。当时,react native还存在很多坑,使用起来不太方便。一年过去,现在重新开始关注react native,发现react native已经将原有的很多问题解决,相比当年版本,有太多的进步
itmifen
2018/04/16
1.3K0
打造属于自己的博客app——基于react native和博客园接口
从零开始构建React Native数字键盘功能
现代移动应用程序在入门过程中经常涉及一个步骤,你需要输入发送到你的电子邮件或手机号码的验证码 PIN。有时,你需要使用类似于分割 OTP 输入字段的东西来输入 PIN。另一种输入验证码 PIN 的方式是使用拨号盘。
前端小智@大迁世界
2024/03/01
8600
从零开始构建React Native数字键盘功能
React-native-scrollable-tab-view详解
前言:他方山上有佳石,可以用来琢玉器。只有解决了一个红屏,才有机会遇见另一个红屏。只有解决了一个困难,才有机会遇到其他的困难。O(∩_∩)O~生命不息,奋斗不止。 React Native中有许多第三方用于封装tabBar的库,当然也有官方提供的。React-native-scrollable-tab-view是一款非常实用的第三方库。放于界面之上可以实现一个界面中子界面的切换效果,置于界面之下可实现功能模块间的切换,通常用于封装自定义的tabBar。 安装 在终端输入命令 npm i react-na
谦谦君子修罗刀
2018/05/02
4.5K0
React-native-scrollable-tab-view详解
React Native 核心技术知识点快速入门
Node.js 是 JavaScript 的运行环境,npm 是 Node.js 的包管理器。可以从 Node.js 官方网站 下载并安装适合你操作系统的版本。
威哥爱编程
2025/02/28
4240
React Native在React Navigation6.0版本如何实现动态路由
//在这里配置页面的路由 import PopularPage from '../page/PopularPage'; import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; import TrendingPage from '../page/TrendingPage'; import FavoritePage from '../page/FavoritePage'; import {createBottomTabNavi
henu_Newxc03
2022/05/05
1.2K0
React Native在React Navigation6.0版本如何实现动态路由
React Native之prop-types进行属性确认
React Native已经升级到0.51.0了,版本升级很快,但是对老项目也会有一些问题,常见的就是属性找不到的问题。例如: 主要原因是随着React Native的升级,系统废弃了很多
xiangzhihong
2018/02/06
1.5K0
React Native之prop-types进行属性确认
React Native之react-native-scrollable-tab-view详解
在React Native开发中,官方为我们提供的Tab控制器有两种:TabBarIOS和ViewPagerAndroid。TabBarIOS,仅适用于IOS平台 ViewPagerAndroid,仅适用于Android平台(严格来讲并不算,因为我们还需要自己实现Tab)。在项目开发中,我们优先选择一些开源兼容性比较好的第三方库,例如,react-navigation,以及本文即将说到的react-native-scrollable-tab-view(官方地址)。react-native-scrolla
xiangzhihong
2018/02/06
6.7K0
React Native之react-native-scrollable-tab-view详解
React Native 路由使用总结
因长时间习惯使用 Vue 与 React 的 路由,网上查询各种资料,找出类似 Vue/React的路由使用。但是React Native 升级到0.44 之后,运行直接报错,createMemoryHistory('/') 异常, 也许是我的使用不当,或者说是环境原因,期间我也打开node_model研究过一番,也没整明白,总之呢,无法使用。
White feathe
2021/12/08
2.2K0
移动跨平台框架React Native状态栏组件StatusBar【16】
状态栏 StatusBar 就是手机屏幕最顶上一个区域,包含 运营商名称、网络情况、电池情况那一条。
江一铭
2022/06/17
2.4K0
移动跨平台框架React Native状态栏组件StatusBar【16】
React-Native组件之 Navigator和NavigatorIOS
对于app而言,一款应用往往涉及到很多的页面,而页面之间的跳转Android和iOS实现也各不相同。在iOS上,系统为我们提供了UINavigationController控件用来专门控制页面的跳转,iOS的实现思路很清晰,为按钮添加action事件,点击之后跳转到指定的页面即可。例如: //定义一个Button,点击后跳转到另一个页面 UIButton * button=[UIButton buttonWithType:UIButtonTypeSystem]; button.frame=C
xiangzhihong
2018/02/06
4.8K0
React-Native组件之 Navigator和NavigatorIOS
React Native+React Navigation+Redux开发实用教程
为了帮助大家快速上手在React Native与Redux开发,在这本文中将向大家介绍如何在React Native中使用Redux?,以及一些必备基础以及高级知识。 本参考了《新版React Na
CrazyCodeBoy
2019/12/10
4.3K0
React Native+React Navigation+Redux开发实用教程
相关推荐
React Native 导航:示例教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档