文档章节

ReactNative教程 — Hello React Native

卖女孩的小火柴
 卖女孩的小火柴
发布于 2017/02/09 09:34
字数 1220
阅读 3
收藏 0
点赞 0
评论 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
厦门
其他
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
React Native 调试问题

使用React Native Tool在VSCODE中进行断点调试时点击DEBUG Android,弹出 Could not debug. Unknown error: not all success patterns were matched. It means that "react-native run-andro......

bill1987610
05/31
0
0
React Native 调试问题

使用React Native Tool在VSCODE中进行断点调试时点击DEBUG Android,弹出 Could not debug. Unknown error: not all success patterns were matched. It means that "react-native run-andro......

bill1987610
05/31
0
0
手把手教你React Native实战从 React到Rn《二》

了解相关更多技术,可参考《学习React Native必看的几个开源项目》,接下来 我们来聊一聊相关的React。 React简介 Rn是基于React的设计,了解 React有助于我们开发RN应用,React希望将功能分...

codeGoogle
06/01
0
0
JavaScript(React Native、Node.js等)移动、服务端通吃的全栈语言

作者:李宁老师 东北大学计算机专业硕士。曾任沈阳东软股份项目经理。51CTO学院签约讲师。从事软件研究和开发超过20年。长久以来一直从事Java、Android、iOS、C++、Swift、Objective-C以及跨...

androidguy
06/29
0
0
一步一步在Windows下搭建React Native Android开发环境

执行上句命令后打开下面这个连接 http://localhost:8081/index.android.bundle?platform=android 页面如图上: 这个页面的说明android项目没有编译成功 需要删除项目(MyProject)下的这个路径...

陈映亮
2017/10/19
0
0
React-Native学习资料分享

React Native 构建 Facebook F8 2016 App / React Native 开发指南 f8-app.liaohuqiu.net/ React-Native入门指南 github.com/vczero/reac… 30天学习React Native教程 github.com/fangwei71......

codeGoogle
05/27
0
0
React Native Mac 下打包Android APK

打包的时候遇到了 好多坑 这里记录下~ 主要步骤: 1.android keystore签名的生成 gradle mac下环境变量的配置 3.android studio中的gradle配置。 4.打包 签名的生成 执行完之后,输入本机的 ...

JsLin_
06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android Studio 3.0 之后打包apk出现应用未安装问题

1、废话 出现这个问题的原因,并不是只有一个,而是有多个原因,不懂的估计会被搞得一头雾水,下面我列举的是我遇到的几种问题和网友遇到的几种问题,但不一定是全部,也有可能有些莫名其妙的...

她叫我小渝
25分钟前
0
0
前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
7
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部