前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React Native(一):基础

React Native(一):基础

作者头像
Helloted
发布2022-06-07 14:00:14
3870
发布2022-06-07 14:00:14
举报
文章被收录于专栏:Helloted

一、React-Native简介以及开发环境搭建

React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用。(来自百度百科)

类似的框架还有Vue以及对应的移动框架Weex(已由阿里开源维护)。

1、利用HomeBrew来安装Node

代码语言:javascript
复制
brew install node

2、安装React Native

代码语言:javascript
复制
npm install react-native-cli

3、安装Yarn,Yarn是FaceBook用来替代npm的工具

代码语言:javascript
复制
npm install -g yarn

4、初始化React Native,第一个Demo,FirstDemo,先cd要某个文件夹

代码语言:javascript
复制
react-native init FirstDemo

5、运行,直接点Xcode的Run或者用命令行

代码语言:javascript
复制
cd FirstDemo
react-native run-ios

6、真机运行,手机与mac在同一个网络下面

代码语言:javascript
复制
jsCodeLocation =  [NSURL URLWithString:@"http://本机IP:8081/index.bundle?platform=ios"];

二、常用命令

本地IP地址

代码语言:javascript
复制
ifconfig | grep "inet " | grep -v 127.0.0.1

添加第三方库,比如react-navigation,cd到根目录,执行

代码语言:javascript
复制
yarn add react-navigation

三、基础代码讲解

iOS端

代码语言:javascript
复制
  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"App" fallbackResource:nil];
  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"DemoProject"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];

里面有两个关键词,AppDemoProject,其中DemoProject是项目文件夹目录名称,App则是这个RCTRootView对应的js文件的名称,即对应的文件为App.js。

App.js

代码语言:javascript
复制
import React, {
  Component
} from 'react';
import {
  AppRegistry,
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' +
    'Cmd+D or shake for dev menu',
  android: 'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

//将RootPage注册
AppRegistry.registerComponent('DemoProject', () => RootPage);

// 自定义RootPage
export default class RootPage extends Component < {} > {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </View>
    );
  }
}

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

其中Text, View, Button三个标签类似于iOS当中的UITextView,UIView,UIButton。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、React-Native简介以及开发环境搭建
  • 二、常用命令
  • 三、基础代码讲解
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档