美文网首页
RN调研方案

RN调研方案

作者: spades_K | 来源:发表于2018-04-27 16:43 被阅读12次

    1.React Native 是什么?

    React Native 是Facebook开源的一套框架,其目的在于使用JavaScript语言编写iOS native的控件。更直白的讲就是,你用JS(JavaScript,下同)写的代码通过react-native lib桥接到Xcode中写的标准iOS程序中。在JS程序中,开发者可以使用react native定义的一套和cocoa touch中UI控件类等价的类,来完成UI层的开发工作,Xcode 编译器 会利用 react-native lib将JS写的代码编译成iOS原生的UI组件,下图展示了利用Xcode的视图调试功能展示了JS代码编译的结果,可以看到,这些JS语言最终确实是被编译成了UIView等对象,而不是H5界面经常使用的webview,有了这个认识之后,我们对react native就不在那么陌生了。

    成功案例.png
    优点
    • 交互比web更加流畅;

    • 基于状态驱动的界面更新机制,变量与UI进行绑定,前者改变时 后者会发生变化;

    缺点
    • 量级较大 客户端人员使用成本较大,学习JSX语法,React知识,学习ES6,函数式编程思想;
    • 复杂交互效果可能支持不到位;
    • iOS端上线几率降低(禁止热更新);

    2.React Native 的开发环境 image

    安装 Homebrew

    Homebrew, Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件。

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    在Max OS X 10.11(El Capitan)版本中,homebrew在安装软件时可能会碰到/usr/local目录不可写的权限问题。可以使用下面的命令修复

    sudo chown -R `whoami` /usr/local
    
    使用Homebrew来安装Node.js.
    brew install node
    

    安装完node后建议设置npm镜像以加速后面的过程(或使用科学上网工具)。注意:不要使用cnpm!cnpm安装的模块路径比较奇怪,packager不能正常识别!

    Yarn、React Native的命令行工具(react-native-cli)

    Yarn是Facebook提供的替代npm的工具,可以加速node模块的下载。React Native的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。

    npm install -g yarn react-native-cli
    

    推荐安装的工具

    • Watchman是由Facebook提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager可以快速捕捉文件的变化从而实现实时刷新)。译注:此工具官方虽然是推荐安装,但在实践中,我们认为此工具是必须安装,否则可能无法正常开发。
    brew install watchman
    
    • Flow是一个静态的JS类型检查工具。译注:你在很多示例中看到的奇奇怪怪的冒号问号,以及方法参数中像类型一样的写法,都是属于这个flow工具的语法。这一语法并不属于ES标准,只是Facebook自家的代码规范。所以新手可以直接跳过(即不需要安装这一工具,也不建议去费力学习flow相关语法)。
    brew install flow
    
    • Nuclide(此链接需要科学上网)是由Facebook提供的基于atom的集成开发环境,可用于编写、运行调试React Native应用。

    点击这里阅读Nuclide的入门文档

    译注:我们更推荐使用WebStormSublime TextVisual Studio Code来编写React Native应用。所有这些开发工具都是跨平台的。其中webstorm是收费的,体量较大,功能较多,基本无需配置。其他工具免费,相对轻量,但或多或少需要下载插件和配置。

    测试安装

    !!!注意!!!:init命令默认会创建最新的版本,而目前最新的0.45及以上版本需要下载boost等几个第三方库编译。这些库在国内即便翻墙也很难下载成功,导致很多人无法运行iOS项目!!!中文网在论坛中提供了这些库的国内下载链接。如果你嫌麻烦,又没有对新版本的需求,那么可以暂时创建0.44.3的版本。

    提示:你可以使用--version参数(注意是两个杠)创建指定版本的项目。例如react-native init MyApp --version 0.44.3。注意版本号必须精确到两个小数点。

    react-native init AwesomeProject
    cd AwesomeProject
    react-native run-ios
    
    工程目录
    工程目录.png

    属性以及使用

    ReactNative iOS源码解析(一)
    ReactNative iOS源码解析(二)

    高仿美团客户端React-Native版,支持iOS、Android - React Native

    个人意见

    1.这个项目本身是开源驱动的,跟原生的比较起来缺失了很多特性和可定制化;

    1. 性能问题 通过框架转化中间多层调用没有直接调用快。

    3.学习复杂度很高,还带有各种不可预知的坑。

    综上所述不推荐使用。

    相关文章

      网友评论

          本文标题:RN调研方案

          本文链接:https://www.haomeiwen.com/subject/sqjblftx.html