React-Native 填坑记录

最近在弄一个app的框架的调研,小公司,希望的学习成本低的框架,最后选择react-native。框架很厉害:Facebook开源,这个框架的家世还是可以的。兼容android,ios。支持ws,xmlhttprequest,fetch。有很多丰富的第三方UI库,antd-mobile以及react-native-elements 等等等,学习成本低,再也不需要考虑跨平台的各种问题,如android,ios的学习成本几乎为0,开发调试的话也很舒服。编辑器什么的都很好。只需要会JavaScript,就可以开发一款移动应用。如果对第三方库熟悉,开发一个简单应用的UI的话,我只能用两个字描述=====“”很快“”。

最后奉上一句:不愧是大Facebook开源的流弊的东西,从此征服android,ios不是难事。哈哈哈。

1、expo框架(这是一个传奇的框架,能够让我们不用写native code就可以开发应用,但是也是一个坑坑的东西,当我们真的不需要写native code,也不需要native Library的时候,请选择这个框架,强烈支持选择这个框架,当我们需要native code 和native library的时候,强烈建议和这个框架say goodbye):

框架的理念很好,包括CRNA都应用了这个框架,当然对于正常的非常normal的开发的时候,这个框架就像一个神器一样,让我们不用写本地代码,android和ios的代码就可以实现很多的功能。

但是============》经过本人亲自踩坑,当我们确确实实需要 native code的时候,一个恐怖的事情发生了。npm run eject++然而最终我们生成的东西除了将expo的框架包含进来了,还将我们熟悉的react-native给替换掉了。

使用CRNA开发的话可以不需要使用native code

而这个expo=======================》对于我们开发而言,提供了很多很好的东西,但是真的需要使用的时候,请考虑好,是否是真的不需要本地代码,当我们需要tcp的时候,当我们需要其他的一些奇奇怪怪的东西的时候,非纯页面开发的时候,可能就需要考虑我们是否真的了解这个框架。

有点坑====》

1、文档有些不全面,很多配置的东西有点让人没法理解,2、支持的东西不能够完全的兼容版本。3、失去了facebook这种腿的支持,能否真的有保障。4、当有一天需要从非native code 到native code 需要做的调整所带来的未知领域。

====================》最终我选择拒绝这个API,拒绝这个很好的库。理念很好,但是代码写的太绝对,不够插件化,我们最希望的是我们提供纯的js,但是我们不愿意失去改变native code 的理由,我们也不愿意失去我们最熟悉的东西。最终我选择放弃这个expo api,如果有一天谷歌或者Facebook支持了,

当然,对于真正的永远不需要写本地代码的,永远都不可能去涉及到本地框架的,强烈支持选择这个框架

但是真的要写本地代码的时候,抱歉,我可能会选择react-native-cli,从兼容性和应用第三方native library的角度来讲,expo不够好。当然前提在于你需要兼容native code 和需要使用第三方native library,拒绝是建立在不需要native的基础上面的,永远不需要native或者等这个框架足够好用的时候。

2、react-navigation:对于熟悉react,react-router,history的同学而言,对于这个组件的作用大概就是一见如故,看到了就能明白。对于这个框架的实现是怎么样,sorry我没有仔细的研究了,这是一个和react-router同样流弊的东西,同样好用的东西。文档实例齐全,对于小白而言,上手很快很快,so soon。

3、react-native自带的组件,如官网所示,就那么多了,下载下来也就那么几个了。

有了上面的东西,其实页面开发就可以开始了,很多美好的故事就这样诞生了。后面的都是锦上添花的东西。

4、react-native-charts-wrapper这是一个功能极其强大,图表极其美观的一个第三方开源的图表框架,能够做出很多很好看的图标,色彩鲜艳,非常美观,如此神器,你值得拥有。


1、antd mobile 蚂蚁开发你值得拥有,为什么选择你,其实很简单?用起来容易,家世出身高人一等,哪怕有无数的框架摆在我的面前,提到这个的家世,那就是你了,大公司维护的比较可靠。和expo可能会有一些差异,expo小门小户,怕是不够和antd mobile一起相提并论。其他的一些开源的框架有很好用的和蚂蚁的这一套也没什么区别了,蚂蚁实现不了的他们也大概就这样了,这就是家世好决定了框架的未来和命运的原因哈。当然这套框架有两个版本,分别对应 react 和react-native,对应DOM(BOM)和移动端,实现方式应该是有区别的但是,简单好用都是共性,实力强大也是共性


需要注意的东西:

React更新了,大改动。。。。。。。。。。。。。。。。。。。。。。。。我亲爱的同学们,当我们发现我们的页面刷新的很奇怪的时候,百思不得其解的时候,请点开官网文档,请点开源代码,我们发现Component Lifecycle 里面有一个deprecated,虽然不知道为什么这么修改,但是既然改了,就重新温习下文档,及早做准备。

我们将react-native 跑在node上面,运行的很嗨,发现node真是一个好东西,于是我们就想在react-native上面跑个express,跑个node,对不起,不支持,react-native并不支持nodejs的标准库


React-Native官方出品的框架中只有三个能够进行网络请求的东西,想要用其他的东西的同学敬请慎重,包括ajax的两个 fetch和xmlhttprequest,和另外一个wssocket。





猜你喜欢

转载自blog.csdn.net/MrHelicopter/article/details/80569687