React-native项目入门与思考

785 查看

引子

有个前端同学说,等我学好了react-native,你们也就快失业了。楼主这小心脏一惊,真的假的,决定开始学习一下react-native。其实之前一直做事native的开发,没有怎么接触过前端,对于React更是比较陌生,虽然从2015年开始它火的一塌糊涂。
这里记录一下自己接触react-native过程中遇到的坑和作为一个native的思考。

环境搭建

React-native for android 都出来快一年的时间了,环境搭建这块有很多的文章,这里还是推荐官网的。React-Native 中文网的也不错环境搭建
这里主要说一下自己遇到的坑:

  1. 编译运行问题
    Android端:
    安装好环境后,直接运行react-native run-android, 该命令实际是直接使用了android目录下的gradlew命令,运行后这里报错了,主要是一些依赖包的问题。这里使用Android studio导入工程目录下的android,然后运行安装,ok 了。
    Ios端
    由于之前没有ios端的经验,遇到的问题都是小白问题。这里需要注意的就是xcode要在7以上,然后注意修改AppDelegate.m中的server地址:
    jsCodeLocation = [NSURL URLWithString:@"http://电脑ip:8081/index.ios.bundle?platform=ios&dev=true"];
  2. Android手机上选项菜单不出现问题
    本文中使用的测试机是小米5,刚安装成功后,正常摇一摇手机可以出调试菜单的,然而并没有出来,这里需要设置该应用的悬浮窗权限,设置后可以使用。

入门基础

  1. React基础
    当然首先是要有js基础,学语言个人经验是先找网上的入门教程也有一个大概的了解,这里推荐廖雪峰的blog,然后就是边实践边学习,有了一定基础后再去看大部头的经典教材,一般就会讲的比较详细,主要是知识更系统,原理也会了解不少,读完后会有一个很大的提升。
    react基础我看了阮一峰老师的博客,React入门实例教程.

  2. React-Native基础
    这里主要是跟着官网的教程练习就可以了,需要注意不能版本之间的一些区别。同时也要注意es5和es6的一些区别,es5和es6的区别这个文章介绍的比较好。


项目练习

  1. react-native-android-guide
    这里收集了很多入门的资料,但是有几个月没有更新了。体验了一下文中提到的知乎日报Android版,整体来说效果不错,但是在界面切换的时候知识有一些略卡。
    react-native-material-design中实现了materal-design,效果不错,但是作者有段时间没有更新,如果使用最新的React-native 有些问题。
  2. awesome-react-native
    这个地址在持续更新着学习资料但主要以英文为主,收集非常多react-native项目。这里fork了项目NBAreact单纯觉得nba不错,哈哈。在源码的基础自己练习乱入了知乎日报的接口。
    这个app中使用了react-native-scrollable-tab-view,一个tab切换的库,react-native-router-flux一个界面跳转的路由库,个人认为很值得学习。
  3. 发现一个不错的react-native project, 代码很整齐,使用了Redux,非常值得学习。
    reading github 地址

Debug

debug需要借助于Chrome浏览器,首先下载react 的chrome插件,然后在应用菜单中选择远程调试,即可以进行实时断点调试,效果还不错。

总结

就接触的几个开源项目而言,在安卓手机上的应用表现略卡,主要表现在界面切换等动画上。但开放一套可以适用于两个端,诱惑力还是很大的。对于原有的native应用可以考虑把一些简单的界面用react-native来实现。

思考

总体感觉react-native 还是有挺多不完善的地方,与原生代码相比,还是有一些差距。但是react-naive 也是在不断的完善中,有点像早期android,有些常用的库比较缺失,可以考虑按照native的思路多造一些轮子。特别是android作为一个开源的系统,很多思路都可以应用于react-native。比如界面切换的路由设置、数据传递等,theme,style的通用实现等,native的同学可以考虑把这些功能加入到react-native中。愿react-native有一个美好的前景。