前端周末

React Native入门基础篇(一)

2019-11-12  本文已影响0人  九州志高山流水

学习一次,随处书写。(以下文字来自各大网上资料整理而来,侵删!)

概述

使用React为Android和iOS创建本机应用

React Native将本机开发的最佳部分与React(用于构建用户界面的一流JavaScript库)结合在一起。
少用或多用。您现在可以在现有的Android和iOS项目中使用React Native,也可以从头开始创建一个全新的应用程序。

用JavaScript编写-使用本机代码呈现

React原语渲染到本机平台UI,这意味着您的应用程序使用与其他应用程序相同的本机平台API。
许多平台,一个React。创建特定于平台的组件版本,以便单个代码库可以跨平台共享代码。使用React Native,一个团队可以维护两个平台并共享一种通用技术-React。

面向所有人的原生开发

React Native可让您创建真正的本机应用程序,而不会影响用户的体验。它提供了一套核心的像与平台无关本地组件的ViewTextImage直接映射到该平台的原生UI积木。

无缝跨平台

React组件包装了现有的本机代码,并通过React的声明性UI范例和JavaScript与本机API进行交互。这样就可以为全新的开发人员团队进行本机应用程序开发,并且可以让现有的本机团队更快地工作。

快速刷新

保存后立即查看更改。借助JavaScript的强大功能,React Native可让您以闪电般的速度进行迭代。无需等待本地构建完成。保存,查看,重复。

会谈

React Native团队的成员经常在各种会议上发表演讲。您可以在Twitter上关注React Native团队的最新消息

Facebook支持,社区驱动

Facebook在2015年发布了React Native,并一直保持至今。
在2018年,React Native 在GitHub中任何存储库的贡献者数量中排名第二。今天,React Native得到了来自世界各地的个人和公司的支持,包括Callstack,Expo,Infinite Red,Microsoft和Software Mansion。
我们的社区一直在运送令人兴奋的新项目,并通过诸如React Native Windows和React Native Web之类的仓库来探索Android和iOS以外的平台。

谁在使用React Native?

从成熟的《财富》 500强公司到热门的新兴创业公司,成千上万的应用程序都在使用React Native。如果您好奇使用React Native可以完成什么,请查看这些React Native官方展示柜

与Flutter优缺对比

优势

缺点

RN环境配置

Option:Expo CLI快速入门

expo init AwesomeProject # 创建项目

cd AwesomeProject
npm start || expo start # 运行项目

Option:React Native CLI快速入门

更多环境配置详情

RN 基本命令行操作

# 执行cli命令最好在管理员模式下运行不然会引发其它错误,设置为admin权限后如果还报错可重启电脑再尝试下

react-native init NameProject # 创建RN项目
react-native init NameProject --version X.XX.X # 使用特定版本
react-native init NameProject --template typescript # 创建RN TS项目
expo init NameProject # 也可以用expo

react-native run-android # 开发环境下运行RN项目(android)
react-native run-android --variant=release # 测试应用的发布版本,设置签名后,此选项才可用

reqact-native link xxx # 将第三方库与原生进行关联如果发生错误使用gradlew clean清理下

adb shell input keyevent 82 # 利用adb工具命令式打开控制台选项
adb reverse tcp:8081 tcp:8081 # 命令提示符下,然后重新运行项目
adb kill-server # 关闭adb服务
adb root # 重新启动root权限的adb服务

rm -f r $TMPDIR/react-* #重置打包程序缓存
watchman watch-del-all # 清除守望者手表

gradlew clean # 清理构建android文件
gradlew bundleRelease # 生成(Google Play)APK,会将运行您的应用程序所需的所有JavaScript捆绑到AAB
gradlew assembleDebug # 编译并打Debug包
gradlew assembleRelease # 编译并打Release的包

npm cache clean --force # npm清除包缓存
yarn cache clean # yarn清除包缓存

# 环境遇到的问题
# bug描述:Starting a Gradle Daemon, 1 busy and 6 stopped Daemons could not be reused, use --status for details
# 解决思路:停止运行Daemon进程
gradle --stop # Gradle会杀死任何闲置了3个小时或更长时间的守护程序,因此您不必担心手动清理它们。
gradle --status # 停止守护程序后,可查看下状态
  1. 创建typescript项目 的时候可能会报错,具体详情可点击此处查看即可。
  2. 上面出现的程序名gradlew需要特别说明下,说起gradlew就要聊聊gradle.介绍简单来说就是gradle会快速迭代版本,如果合作开发项目会导致成员自己下载gradle,导致版本不一,从而手忙脚乱,所以干脆包装起来,统一。因为gradle处于快速迭代阶段,经常发布新版本,如果我们的项目直接去引用,那么更改版本等会变得无比麻烦。而且每个项目又有可能用不一样的gradle版本,这样去手动配置每一个项目对应的gradle版本就会变得麻烦;所以需要包装,引入gradle-wrapper,通过读取配置文件中gradle的版本,为每个项目自动的下载和配置gradle,就是这么简单。我们便不用关心如何去下载gradle,如何去配置进项目来。下面一张图对gradle与RN的关系。
    image
    [图片上传失败...(image-acdb6a-1573558991089)]

    通过gradle wrapper命令就可以愉快的gradlew了。

RN项目基本所需库

关于react-native我认为最好的环境配置详情可参考tarotaro react-native更详细更全面。

上一篇 下一篇

猜你喜欢

热点阅读