您的位置:首页 > Web前端 > React

一个Android开发者的React Native之路

2016-08-31 23:22 148 查看
这是一个Android开发者一个月以来学习React Native的一些经验和感悟,如有错漏之处敬请指出~

1.什么是React Native

React Native是Facebook在2015年开源的一个项目,用官方的话来解释就是:

React Native lets you build mobile apps using only JavaScript

React Native让你只用JavaScript就能编写移动端App

简而言之,如果你掌握Javascript这一门语言,便能写出Android、iOS和两端的应用,再加上React Native本身基于React,因此也能很容易把React Native项目移植到Web上。不过,React Native的哲学在于“一次学习,随处可写”,而并非“一次编码,随处运行”,在构造不同平台的应用时,你需要尽可能地复用代码,这样才能实现“快速构建多端应用”的目的。

React Native用JS写成,但是不像Web App那样有着糟糕的手感,而是更接近于原生App。例如它在Android中的ListView、ScrollView都有着接近于原生的表现(比如我写的图文混排的ListView在滚动加载时基本每一帧的渲染时间都小于60ms),能够做到这一点的原因在于React Native实际上是通过JNI调用C++代码来执行JS的,而不是通过WebView去执行(具体的过程将在之后的文章中介绍)。

2.React Native的优缺点和适用范围

优点:

1.接近原生的体验

2.可复用的组件便于快速构建多端应用

3.支持热更新(用户只要下载很小的JSBundle就可完成应用的更新)

4.Web开发者可以快速上手编写Native应用

5.开发时能很方便debug

缺点:

1.增加应用安装包的大小(Android上未经删减大约增加6M)

2.React Native还在持续发展中,存在不少坑,每两星期会发布一个新版本(目前版本0.32)修复一些Bug和增加新的API,需要开发者及时关注并跟进。

3.如果用React Native进行较深层次的开发(比如使用React Native没有提供的原生控件),需要同时掌握Web、Android/iOS的开发技能,这反而会增加开发的时间成本和学习成本

以我个人的观点,目前来说React Native技术适用于

①主体部分用Native编写,用React Native替代应用中的WebView来获得更好的体验

②和Native相结合,用React Native写一些经常需要更改的页面(例如电商的促销活动页面)

③缺少Android/iOS的开发人员,但需要快速构建、长期维护多端应用

④作为开发者学习新技术找点新乐趣也无妨~

3.如何学习React Native

对于没有前端经验的人来说(比如我),React Native的学习之路会相对坎坷一些,下面是一点个人觉得比较适合的学习顺序,同时我也会逐步更新每一步的文章,希望能够帮助到初学者。

0.搭建环境、简单静态组件的编写

哪怕什么都不会,至少一步步搭建好环境、照着示例写一点简单的控件也能够让你感受到React Native的魅力所在,

1.React/React Native基本思想

2.HTML/CSS/JavaScript基础

3.ES6

4.基本组件、API

5.构建一个简单的应用

6.使用Redux构建应用

7.React Native应用的优化

8.React Native 和Android Native的结合

4.参考

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android react native