正文
相关入门资料推荐
干货:
https://github.com/xujinyang/react-native-android-guide
https://github.com/LeoMobileDeveloper/ReactNativeMaterials
Redux的资料:
https://github.com/xgrommx/awesome-redux
这个需要什么基础?还有就是以后的发展您是怎么看的?会代替原生还是和原生相辅相成?
(1)基础:前端基础,例如:JS、JSX、Flexbox以及熟悉iOS的组件即可。
(2)前景:现在最大的优势就是热更新;对于需要及时更新的部分,可以采用React-Native
(3)目前:相辅相成;未来的话,我希望更多是大部分替代原生。
用React Native 开发APP需要掌握其他哪些技能,除了React Native部分
会一些JS是最好的,掌握一些ES6语法之类的。
三、适用场景相关——技术总是脱离不了使用场景的
RN目前在项目实践中已知的坑有哪些?假如新开发一个项目,完全使用RN是否可行?另外想了解一下您在项目中使用的程度和场景,谢谢!
不太建议完全使用RN,因为Facebook也在不断填坑,每个月都有新版本,一个长期项目经不起频繁换依赖库的版本;我们公司也只是作为业余研究性质,不过RN的热更新思路真心不错,可以随时更换功能模块。需要注意的是,热更新和在线更新是不一样的,分别对应的是 hot-reloading 和 reload,调试时是通过 hot 选项控制;鉴于 hot-reloading 需要和服务器实时保持一个socket长连接和既有的不确定性,我不相信会有公司会采用 hot-reloading 的方案,应用于生产环境。如果真的应用hot-reloading了,那就分享下心得呗。
目前使用React-Native有那些局限,React-Native更适合开发那些应用?
React-Native还是有些坑需要踩的,现在Github上也能看到Recat-Native源码库都有不少开发者在提bug,更新的也很快。目前React-Native做一些内部APP还是可以的;目前对动画的支持不是很高,这个可以在一些APP中做一些优雅降级;更适合开发那些动画效果要求不是忒高、组件功能要求相对较少(如果团队中有OC的开发者可以忽略)的APP。很多坑,我们团队现在都在踩。
请问React-Native的目前推广和应用局限性有哪些?
React-Native技术的推广可以从公司内存APP试水;边踩坑边开发,React-Native的局限性除了平台因素,就是对开发者要求较高。当然开发效率来说,应该是很快的。如果团队中有Object-C成员,相对而言,上手就会轻松很多。
现在互联网公司开发一个新的移动APP,是不是建议使用React-Native
不一定,React-Native是可以减少一些开发成本,但是目前React-Native Android还有很多不完善的地方,目前比较适合做偏UI方面相对简单的一些需求和功能 。
四、React Native 与其他开发工具、方式对比
想知道,这个与 Phonegap 的比较,包括开发效率,学习曲线,用户体验,工具的完善程度等。
Phonegap 和 React-Native 还是不同。React-Native 内部在 iOS7 版本以上采用的是JS Core Engine 解析的,在版本上是降级使用 WebView。React-Native 针对前端开发者上手难度应该不是很大,主要熟悉Flexbox布局、JSX语法、React-Native API。
这个同跨平台开源的.NET + C#开发通吃平台的APP相比,差距在哪里呢?
你说的应该是指Xamarin吧,这个我有尝鲜过,收费的商业解决方案,我感觉是主要依赖官方提供的控件和库,React-Native相对学习成本没那么高,毕竟现在做C#的相对小众,React-Native没提供的原生控件你可以通过它提供的扩展来自行扩展,开源而且社区相当活跃,我认为前景很广阔,个人认为要比Xamarin好,性能方面没对比过,因为我没买Xamarin的方案。
能从学习周期、开发难度、运行速度方面分析下,AngularJS和React Native的差异吗?
对我个人来说,我是一个Android开发者,之前没接触过Web和JS,Angular我也有看过,Angular学习成本我认为比React高,做APP方面的就是ionic,React是个纯UI的东西,React-Native也是,然后提供了和原生APP的扩展模块,开发周期我感觉对于我来说肯定是React比较快,运行速度方面React-Native是要胜于ionic的。
React-Native开发出来的APP和原生的APP的性能有区别吗,React Native做出来的安卓APP是不是没有原生的流畅啊?
React-Native开发效率高于Native;React-Native效率和体验高于Hybird;React-Native整体性能跟Native差距不大。Facebook给出的性能测试是接近原生的性能,如果不是很复杂的APP,看不出什么差别,但是如果相对复杂的动画UI之类的,那肯定还是原生更胜一筹。不过如果只是开发一个功能性APP的话基本没啥大差别了,毕竟现在的Android手机性能也很好。
用这个你觉得在与我们这帮原生Android App工程师的竞争中,你们最大的技术优势是什么,对比原生,你们的劣势有在何处?
最大的技术优势:iOS和Android可以一定程度上的代码公用,减少开发成本和开发周期,可以随时线上热更新。 和原生相比的劣势:目前React-Native Android不适合做相对复杂的动画效果和UI,体验上会有一些问题,而且热更新只是针对纯React的模块,和原生交互的会有原生代码,热更新就不好用了。目前我感觉最好的方式还是原生+React的混合开发,根据需求做技术选型。