React-Native笔记(一)—— 如何实现页面间的跳转

一、序言

  • 最近课题组分配到一个项目,有个移动端的开发需求,技术定为React Native。之前没有学过React等前端框架,只好临时学了。那就一起来学习吧!
  • 选择React Native是有多方面好处的。React Native是FaceBook于2015年3月发布的一个跨平台移动开发框架。React Native是在React框架的基础上,底层通过对IOS和Android平台的原生代码的封装和调用,我们直接通过js调用组件即可(部分组件Android和IOS不通用,需要进行分开)。

在这里插入图片描述

二、开发环境和工程结构

1、开发工具
  • JDK 1.8 + WebStorm + IDEA/Android Studio
  • 由于之前自己玩过Android,所以Android开发环境已经搭建好了。Android开发环境搭建略麻烦,会有一些坑。具体的开发环境搭建已经有不少的帖子讲啦,这里不再赘述。
2、工程目录结构

这是项目的框架结构,src是我新建的目录,用来存放前端代码。项目整体结构如下:

在这里插入图片描述

三、第一个项目

1、Terminal 进入一个你想存放代码的目录,执行命令创建项目
react-native init RNDemo01

在这里插入图片描述
2、进入项目目录,并启动

cd RNDemo01
react-native start

在这里插入图片描述

3、使用idea打开Android目录,或者使用Xcode打开IOS目录,启动项目,运行。
在这里插入图片描述

在这里插入图片描述

四、实现页面跳转

1、用WebStorm(或者你喜欢的前端开发IDEA)打开工程,新建目录结构如序言截图所示。
2、导入项目依赖
  • 打开项目根目录的package.json文件,在dependencies下添加以下依赖,这里采用的是react-navigation实现。
	"react-navigation": "^4.4.2",
    "react-navigation-stack": "^1.8.1",
    "react-native-screens": "^2.11.0"
  • 写好后,根据提示安装依赖

3、MainScreen.js文件

import React, {Component} from 'react';
import { View, Text, Button } from 'react-native';
import { StackActions, NavigationActions } from 'react-navigation';

export default class MainScreen extends Component{
    render() {
        return (
            <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
                <Text>Home Screen</Text>
                <Button
                    title="Go to Details"
                    onPress={() => {
                        this.props.navigation.dispatch(StackActions.reset({
                            index: 0,
                            actions: [
                                NavigationActions.navigate({ routeName: 'Details' })
                            ],
                        }))
                    }}
                />
            </View>
        );
    }
}
4、TwoScreen.js文件
import React, { Component } from 'react';
import {
    View,
    Text
} from 'react-native';

export default class TwoScreen extends Component{
    render() {
        return (
            <View>
                <Text>这是第二个页面</Text>
            </View>
        );
    }
}
5、项目入口文件
/**
 * @format
 */
import React from 'react';
import { createAppContainer, StackActions, NavigationActions } from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack'
import HomeScreen from "./src/pages/main/MainScreen";
import DetailsScreen from "./src/pages/two/TwoScreen";
import { AppRegistry } from 'react-native';
import {name as appName} from './app.json';

const AppNavigator = createStackNavigator({
    Home: {
        screen: HomeScreen,
    },
    Details: {
        screen: DetailsScreen,
    },
}, {
    initialRouteName: 'Home',
});

const App = createAppContainer(AppNavigator);

AppRegistry.registerComponent(appName, () => App);
6、运行结果

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值