React Native填坑之旅--重新认识RN
如同黑夜里的一道光一样,就这么知道了F8. F8是每年一次Facebook每年一次的开发者大会。每次大会都会release相应的APP,iOS、Android都有。之前都是用Native开发的,但是2016的这一次是用React Native开发的。
FB开源了RN的App
这次fb不仅开源了纯RN写的App,而且一同发布的还有开发这个App的教程。FB承诺会不断的更新这个app。教程放在make it open。不幸的是这个站点居然被墙了!!!技术博也能被墙,心中跑过一万个草泥马!!!F8的App可以在app store和google play下到。不要着急下,我么先一睹F8的风采。
App的设计本身是没的说,而且两个平台的App都遵守了各自平台的设计规范。iOS的用底部的Tab bar,Android的用了侧边划入的菜单。Android的还没来得及用,在低版本、低配置的Android设备上尤其能反映出RN的性能如何。
facebook在F8教程中提到在fb的内部团队使用了RN后,app有大约85%的代码是可以重用的。这是着实减少了很多的开发量。而且使用RN可以快速的开发出app原型。
RN应用处理数据
在应用的开发中少不了需要处理一些数据。F8 使用了Parse实现了后端的功能。Parse很适合作为对数据依赖不那么强的应用的后端。具体Parse如何使用,各位可以查看文档。我们集中讨论RN应用。
一直以来RN都被认为是MVC模式里处理“View”部分的。但是React本身的特点又让这些略有改变。几个React组件组成了一个view,每一个组件内部都可以包含一些逻辑处理的代码。而这些逻辑处理的代码本来应该是由controller来处理的。
React提供了一种开发模式Flux。RN里就可以使用了Flux模式的最佳实践库Redux。Redux引入了Store的概念,提供了一个新的修改state的工作流,扩展了React的数据关系。你可以参考Flux如何使得React应用实现单向数据流的。
F8有一点需求,需要可以离线使用。正好Redux提供了可以存储和缓存方面的功能。用fb教程的话来说:“Redux提供了功能和易用的最佳平衡”。
其他
很多的公司虽然使用了React,但是没有使用Flow。这里有填坑番外来介绍flow的使用方法。Flow是fb为了保证js开发的时候能尽早,尽可能多的发现错误而开发的一款开源工具。
有很多的js错误,你不需要在代码运行起来以后才发现错误。只要几个flow命令就可以检测出来。如果使用Nuclide,这个React专用的开发工具的话,Flow会在你写完代码之后就给出提示。非常有帮助。
最后
这些应用开发的只是,以及开发对于开发一款React Native应用都有非常大的帮助。F8是一个开发和几个帮忙的设计开发出来的App。其中所使用的开发知识,第三方库和开发工具对于开发React尤其是React Native应用来说不是必不可少、也是非常有益的。学习掌握他们对于我们以后的开发都是大有裨益的!
React Native填坑之旅--重新认识RN的更多相关文章
- React Native填坑之旅--与Native通信之iOS篇
终于开始新一篇的填坑之旅了.RN厉害的一个地方就是RN可以和Native组件通信.这个Native组件包括native的库和自定义视图,我们今天主要设计的内容是native库方面的只是.自定义视图的使 ...
- React Native填坑之旅--Flow篇(番外)
flow不是React Native必会的技能,但是作为正式的产品开发优势很有必要掌握的技能之一.所以,算是RN填坑之旅系列的番外篇. Flow是一个静态的检查类型检查工具,设计之初的目的就是为了可以 ...
- React Native填坑之旅--布局篇
代码在这里: https://github.com/future-challenger/petshop/tree/master/client/petshop/src/controller 回头看看RN ...
- React Native填坑之旅--组件生命周期
这次我们来填React Native生命周期的坑.这一点非常重要,需要有一个清晰的认识.如果你了解Android或者iOS的话,你会非常熟悉我们今天要说的的内容. 基本上一个React Native的 ...
- React Native填坑之旅--Navigation篇
React Native的导航有两种,一种是iOS和Android通用的叫做Navigator,一种是支持iOS的叫做NavigatorIOS.我们这里只讨论通用的Navigator.会了Naviga ...
- React Native填坑之旅--ListView篇
列表显示数据,基本什么应用都是必须.今天就来从浅到深的看看React Native的ListView怎么使用.笔者写作的时候RN版本是0.34. 最简单的 //@flow import React f ...
- React Native填坑之旅--动画
动画是提高用户体验不可缺少的一个元素.恰如其分的动画可以让用户更明确的感知当前的操作是什么. 无疑在使用React Native开发应用的时候也需要动画.这就需要知道RN都给我们提供了那些动画,和每个 ...
- React Native填坑之旅--Button篇
从React过来,发现React Native(以下简称RN)居然没有Button.隔壁的iOS是有UIButton的,隔壁的隔壁的Android里也是有的.没有Button,就没有点击效果啊.这还真 ...
- React Native填坑之旅 -- 使用iOS原生视图(高德地图)
在开发React Native的App的时候,你会遇到很多情况是原生的视图组件已经开发好了的.有的是系统的SDK提供的,有的是第三方试图组件,总之你的APP可以直接使用的原生视图是很多的.React ...
随机推荐
- asp.net 对数据库表增加,删除,编辑更新修改
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...
- 转载:centos7下使用yum安装mysql
转自:http://www.cnblogs.com/hwd-cnblogs/p/5213337.html CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql ...
- java环境基础步骤 maven
1. 下载maven,解压到合适的位置 a. 下载 Maven ,其实就是一个压缩包,解压一下 b. 配置一下环境变量 有两个环境变量可以配置: MAVEN_HOME = D:\maven ...
- Emmet (Zen Coding) HTML基本语法
1. 嵌套操作---------- 子操作: > div>ul>li 并列:+ div+ul>li 上级:^ ul>li^div ul>li>a^ ...
- AFNetworking图片缓存问题
AFNetworking网络库已经提供了很好的图片缓存机制,效率是比较高的,但是我发现没有直接提供清除缓存的功能,可项目通常都需要添加 清除功能的功能,因此,在这里我以UIImageView+AFNe ...
- C++对象模型
1.类布局 1.1简单类对象的内存布局 class A { public: void f(); private: int i; char c; static int s; }; 简单对象的内存布局:非 ...
- Ubuntu:我不小心把/var/lock文件夹给删了
在一个风和日丽的下午,不正常关闭minicom导致了device 没有正常解锁,于是使用minicom的时候提示 device is locked: 根据网上看到的方法只要把/var/lock 里面的 ...
- 如何用Unity制作自定义字体——Custom Font
一.效果图 二.步骤 将美术做好的字体分块导入BMFont,使用BMFont工具生成艺术字库: 将上面的数据导入unity资源目录下:*.fnt文件中记录每个文字的状态信息: 导入*.png图片并设置 ...
- let it be
回家路上听到电台里主持人在介绍这首歌,听得我两眼模糊,真的太应最近的心情了. let it be.
- javascript:history.go()和History.back()的区别
http://www.mikebai.com/Article/2009-11/757.html