React Native开篇

React Native(之后简写为RN)火了一段时间了,但是当我跟身边的小伙伴提起的时候,好像知道的人并不多,是身边的伙伴Out了吗?其实,这还是得看是否有机会让你去研究的。可能你听了 RN 后根本不在意,也可能你想去了解下他,但是工作很忙,后来也就渐渐念头消失了。当然,如果你是技术宅(Me too)那可能怎样你都能抽出时间去学习。我算幸运了,公司领导是个对新技术有热情的人,所以,公司决定用 RN 重构整个项目。原因有两个:1. 将iOS和Android统一开发,为之后节省大量时间;2. 无需Apple审核,实现动态更新。

正文

今天,将对自己这段时间所学,做个总结,当然,也希望读者能从中学到点什么。在学习的过程中,如果遇到什么问题,希望我们也能相互交流。

下面,我将围绕这几个问题说明:

  1. 学习 RN 有用吗?
  2. 学习 RN 前需要准备什么?
  3. 遇到问题怎么办? ...

我们先不说未来 RN 是否会家喻户晓,我们先了解下他在试图解决什么问题。官方网站有句话:Learn Once, Write Anywhere。学习一种编程语言,实现所有平台的功能(从目前看,这门语言非 Javascript 莫属了)。Facebook表面上是说让Javascript可以实现多平台,其实从另一个层面上说,他在试图解决代码重复编写的问题。意思就是:你没有办法让 1 + 1 = 1, 但是可以实现 1 + 1 <<< 2(远小于2)。 这样说吧,假设你会 iOS 开发,又会 Android 开发,现在让你开发一个 App,你需要写 1 + 1 = 2 这么多的代码,即使你的 Model,你的 View 封装的再好,由于所用的编程语言不同,语法就更不用说了,所以你还是得改改改,然后才能转到另外一个平台去(一般情况下不会这样做的,都是Android和iOS分开开发的)。那现在如果能让 1 + 1 <<< 2 的话,你做不做?你学不学?另外,不管如何,这种思想是正确的,谁不想花少时间开发出同样的产品呢。

那些只是听过 RN 的人总会误以为 RN 所用的控件都是通过类似 H5 搭建App那样全部基于 web 来实现的,当我像他们提起说公司现在用 RN 重新搭建项目时,他们就会问:那 Native 的控件都不用了吗?性能会不会很差呀? 其实,不是的,从名字上就可以看出,RN用的是 Native 的控件。RN 上的控件(又叫组件)是通过 Native 上的控件进行封装的,所以我们用的还是 Native 的控件。但是现在 RN 还是有不少问题的,比如使用的 TableView(ListView) 就没法像 Native 那么高性能了,但是问题总有解决的一天。

那学习 RN 之前,我们需要什么技能储备呢?前面说了,RN 所使用的编程语言是 Javascript(使用的是jsx)语法,所以

  1. 有点 Javascript的基础是必须的,至少你得知道怎样定义一个变量,怎样定义一个函数(方法),然后稍微理解一下闭包(我就是只懂这些就开始的),闭包的概念现在在很多语言上都有了,Objective-C,swift,Java 等都引入了;
  2. 既然是开发 App,当然某一个平台的编程语言你是必须熟悉的。如果你已经是 iOS 或者 Android 开发者那就不用说了;
  3. flex-box 的布局方式你得先了解下,这对你的开发适配有很大的帮助。

下面说说我是怎样准备这些的:

  1. Javascript可以说我基本上都是不懂的,之前想学,但是都没机会。只知道var来定义变量,通过看其他源码例子,不懂就查(如数组元素怎样拼接成字符串,字符串怎样分割成数组这些很基本的函数调用,方法名其实跟其他语言的都基本一样),现在写出某个功能已经基本上没问题了,遇到不懂的语法就查下;
  2. 因为我是做iOS开发的,所以对Objective-C还是有信心的(这样决定了我后面写的一些实现都只涉及到iOS,当然,很多都是和Android通用的);
  3. 我是这样学 flex-box 的,先看一遍这篇文章:一个完整的Flexbox指南或这篇Flex布局教程:语法篇了解了它大概能怎样进行布局,然后这篇文章我就没再关掉过了(至少到现在都没关掉这个网页),还是那句话,不记得的时候就看一下,渐渐的就熟悉了。就这样我开始了 RN 开发项目之旅。

最后一个问题,遇到问题怎么办? 现在我知道的是国内有几个中文社区,如React-China, React Native中文社区。国外资料的话,首先 Facebook 的官方文档已经有很详细的使用说明了。但是我们遇到其他各式各样的问题,如果遇到不懂的语法直接 google基本上就够了,而如果发现了 RN 的 bug 之类的,我们可以直接去 RN 的 github 上去查 issue,没准其他人也已经发现了,如果实在没有,那就只能自己发 issue 了。另外,RN 现在更新很快,基本上两三个星期就有个新的版本了,所以,今天发现的 bug 可能明天就被修复了。

下一篇:React Native环境搭建

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容