文档章节

ReactNative教程 — Hello React Native

卖女孩的小火柴
 卖女孩的小火柴
发布于 2017/02/09 09:34
字数 1220
阅读 4
收藏 0

ReactNative教程 — Hello React Native

下载此文件http://blog.csdn.net/vispin/article/details/52981294

前面文章已经介绍过了开发环境的搭建了.

注意: 你的电脑在有网络的情况下使用, 使用离线初始化一个项目不在这个教程范围内,有兴趣可以一起探讨.

现在我们创建我们的一个 React Native 项目.
打开命令窗口: (自己切换到自己的工作空间, 我的工作空间在当前位置下的 WorkSpaces)

cd WorkSpaces
react-native init HelloProject

初始化的之后的等待时候取决于你当前网络的情况.

Android 上运行项目

  • 入门级的同事们电脑都是些老机器,所以在虚拟机上很消耗电脑内存, 建议使用真机进行安装测试.

真机上运行项目

  • 启动JS Server (在项目位置下 ~/WorkSpaces/HelloProject)

    npm start
  • 给 Android 项目打一个缺省的 js 文件(可不做, 此步骤也是更新项目中 js 的一个方式) (在项目位置下 ~/WorkSpaces/HelloProject)

    • 创建缺省文件,(没有缺省文件打 js 文件时会报错)

      • 切换文件夹位置到./android/app/src/main目录下
      • 创建文件夹assets
      • 切换到assets文件夹里面
      • 在文件夹下创建文件 index.android.bundle (注意扩展名也要一起改)
      • 在文件夹下创建文件 index.android.bundle.meta (注意扩展名也要一起改)
    • 运行生成 js 文件命令

      react-native bundle --entry-file index.android.js --bundle-output ./android/app/src/main/assets/index.android.bundle --platform android --assets-dest ./android/app/src/main/res/ --dev false
  • 使用AndroidStudio打开项目文件下的 android 目录 (如果是第一次使用 AndroidStudio 会有一个漫长的过程,因为 gradle 在下载依赖文件)
  • 使用 AndroidStudio 将应用安装到手机上

相关知识介绍

初始化完,打开工作目录下的项目文件夹(~/WorkSpaces/HelloProject)

初始化后项目结构

|- HelloProject | 项目工作空间
    |- android | android 端代码 
        |- app | app 模块
            |- build.gradle | app 模块 Gradle 配置文件
            |- progurad-rules.pro | 混淆配置文件
            |- src/main | 源代码
                |- AndroidManifest.xml | APK 配置信息 
                |- java | 源代码
                    |- 包名 | java 源代码
                        |- MainActivity.java | 界面文件, (加载ReactNative源文件入口)
                        |- MainApplication.java | 应用级上下文, (ReactNative 插件配置)
                |- res | APK 资源文件
        |- gradle | Gradle 版本配置信息
        |- keystores | APK 打包签名文件(如果正式开发需要自己定义修改签名文件)
        |- gradlew | Gradle运行脚本, 与 react-native run-android 有关
        |- gradlew.bat | Gradle运行脚本, 与 react-native run-android 有关
        |- gradle.properties | Gradle 的配置文件, 正常是 AndroidHome, NDK, JDK, 环境变量的配置
        |- build.gradle | Gradle的全局配置文件, 主要是是配置编译 Android 的 Gradle 插件,及配置 Gradle仓库
        |- settings.gradle | Gradle模块配置
    |- ios | iOS 端代码
    |- node_modules | 项目依赖库
    |- package.json | node配置文件, 主是要配置项目的依赖库,
    |- index.android.js | Android 项目启动入口
    |- index.ios.js | iOS 项目启动入口

其他文件夹没详细说明,不在目前介绍范围内.

Android 项目相关的知识不在今天的介绍范围,更多了解需要自己去了解

package.json

{
  "name": "HelloProject",
  "version": "0.0.1",
  "private": true,
  "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" },
  "dependencies": { "react": "15.3.2", "react-native": "0.36.0" },
  "jest": { "preset": "jest-react-native" },
  "devDependencies": { "babel-jest": "16.0.0", "babel-preset-react-native": "1.9.0", "jest": "16.0.2", "jest-react-native": "16.0.0", "react-test-renderer": "15.3.2" } }
dependencies
  • 项目的依赖配置
  • 依赖配置,配置信息配置方式
    • “version” 强制使用特定版本
    • “^version” 兼容版本
    • “git…” 从 git版本控制地址获取依赖版本库
    • “path/path/path” 指定本地位置下的依赖库
    • “latest” 使用最新版本
    • “>version” 会在 npm 库中找最新的版本, 并且大于此版本
    • “>=version” 会在 npm 库中找最新的版本, 并且大于等于此版本
devDependencies
  • 开发版本的依赖库
version
  • js 版本标志
description
  • 项目描述, 主要使用于做第三方支持库时,对库的描述信息
main
  • 项目的缺省入口
engines
  • 配置引擎版本信息, 如 node, npm 的版本依赖

index.*.js

  • 正常只作为项目入口,不做其他业务代码处理

常用控件的使用

AppRegistry

react包

  • Component 控件基类
  • PropTypes Porps 类型用于声明 Componen的 props 值类型 (具体的使用后面会介绍)

react-native 包

  • AppRegistry
    • JS运行所有React Native应用的入口
    • AppRegistry.registerComponent 注册页面, 让原生来调用
  • View
    • 相当于 html 的 div
  • Text
    • 用于介面显示文本
    • 拥有点击事件
    • 子 Text 会集成父Text Style
  • TextInput
    • 文本输入框
  • TouchableOpacity
    • 处理点击事件
  • Image
    • 图片空间

常用 API

  • Alert
  • Dimensions
  • AsyncStorage
  • BackAndroid
  • Clipboard
  • PixelRatio
  • StyleSheet
    • 定义样式

进一步学习的资源

本文转载自:http://blog.csdn.net/vispin/article/details/52981294

共有 人打赏支持
卖女孩的小火柴

卖女孩的小火柴

粉丝 3
博文 25
码字总数 124
作品 0
厦门
其他
React Native跨平台移动应用开发框架介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/61423043 好久没有来更新博客了,给大家说声抱歉,人一旦懒惰起来连自己都害怕。可能...

Aduroidpc
2017/03/11
0
0
Swift已有项目手动集成ReactNative

背景 记得2017年处写过一篇公司放弃RN血泪史的经历,当时之所以放弃时因为前期投入过多人力物力研究,以至于第一版本耗时太多未见成效,所有被老板叫停。真是"常在河边走哪有不湿鞋"最近因为...

LvesLi
06/27
0
0
Udacity也弃用React Native了 !看看他们使用React Native过程中遇到了哪些问题

Udacity也弃用React Native了 !看看他们使用React Native过程中遇到了哪些问题 2018-07-12 10:29编辑: 枣泥布丁分类:程序人生来源:程序师 React Native弃用Udacity 招聘信息: iOS开发 ...

枣泥布丁
07/12
0
0
学习RN之前看这一篇React入门就够了

React是一个用于构建用户界面的 JavaScript 库,起源于Facebook内部项目,13年已经开源https://github.com/facebook/react。学习ReactNative首先要了解React相关的知识(当然可以和RN同步学习...

LvesLi
06/29
0
0
已有Android项目集成RN

开篇一张图,后面全靠编 1.配置ReactNative的js环境 在Android项目根目录下输入命令npm init (直接在Android studio的terminal命令窗口就行) 我们可以看到init让你生成一个package.json文件,...

pjenary
07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Web系统大规模并发:电商秒杀与抢购

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

xtof
今天
1
0
代码质量管理平台-sonarqube

在工作中,往往开发的时候会不怎么注重代码质量的人很多,存在着很多的漏洞和隐患等问题,sonarqube可以进行代码质量的审核,而且十分的残酷。。。。。接下来我们说下怎么安装 进入官网下载:...

落叶清风
今天
6
0
在Ubuntu安装和配置Sphinx

Ubuntu系统默认是配置有sphinx的,先检查一下,别多此一举。。。。。 在开始本指南之前,您需要: 一个Ubuntu 16.04服务器。 sudo的一个非root用户,您可以通过以下设置本教程 。 安装在服务...

阿锋zxf
今天
1
0
Qt编写输入法V2018超级终结版

对于qt嵌入式linux开发人员来说,输入法一直是个鸡肋问题,要么不支持实体键盘同步,要么不能汉字输入,要么不支持网页输入等,这几年通过陆续接触大量的各种输入法应用场景客户,得到真实需...

飞扬青云
今天
2
0
TypeScript基础入门之高级类型的多态的 this类型

转发 TypeScript基础入门之高级类型的多态的 this类型 高级类型 多态的this类型 多态的this类型表示的是某个包含类或接口的子类型。 这被称做F-bounded多态性。 它能很容易的表现连贯接口间的...

durban
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部