2021了!你都用哪些跨平台框架,你学废了吗

现在跨平台开发不是新鲜事了,各个跨平台框架都已经百花齐放,各有千秋。我本人是一名前端开发程序员,对各个跨平台框架都有所涉猎,今天大概说一下各个框架的优势及劣势,供大家在开发过程中提供参考。

首先要说的是React Native(RN),要学习RN你要先学会react,react是率先提出虚拟DOM概念的,在虚拟DOM中计算对比DOM树大大提升了前端性能,后续vue等框架开始模仿,正因为虚拟DOM的概念太过强大和超前,导致它不受平台限制,从而衍生了RN,它的背后也是大厂支持facebook。说它凉了都是谣言,大家放心学习即可。它的原理是通过react的方式可开发APP,它可以把我们用JS写的组件,编译成原生组件不是什么H5应用或是webapp。所以用户体验还是很不错的,小公司追求效率可以选择,但是RN毕竟是一个APP UI的解决方案需要集成复杂SDK的话还需要会原生开发目前它的生态已经非常完整完善,你不必担心你的APP太过复杂它不能实现的问题,因为它可以和原生无缝衔接配合随时呼叫原生支援。那么它的性能如何呢?有的人对于性能问题纠结不放,实话说;它和远程肯定还是有差距的,毕竟中间多个JS层,基于jscore运行的,但是一般APP用户根本无法察觉其中的差距,没有垃圾框架只有垃圾程序员,我们完全可以用技术弥补一些性能差距,所以不必在意那些微乎其微的性能差距,强烈建议学习和使用。

第二个要说的是国内很火的uniapp,号称有370W开发者,在国内很火,它背后的公司是国内的dcloud,技术栈是基于vue的。react在国际上很火,但是在国内;不好意思vue已经是大哥了。可以说dcloud把vue玩的很透,基本可以说是国内vue用的最6的公司,uniapp的优点是能够一次编写编译APP和小程序端全覆盖,对于国内程序真的是福音,它的优势在于成本低(学习成本低、开发成本低),uniapp结合了weex的概念推出了nvue,它的原理在于能把web组件编译成远程组件,跟RN有些相似的想法。但是uniapp开源程度不够,现在选择它的都是一些小公司或是外包公司,uniapp提供了很多与原生/小程序交互的“桥”,目的在于让你无脑开发即可,我们可以轻松开发例如微信支付、蓝牙、分享、定位、推送等,而且uniapp上架商店是完全合规没有风险的,有人说它是基于webview的,性能是个问题,我本人体验了一下和亲身用过uniapp开发,认为uniapp是做过很多优化的,比我们自己套个壳子用的webview用户体验要好很多(小公司不推荐套壳开发),高频页面可以用nvue开发,效果更好如果我们前期开发为了快速上线,完全可以选择uniapp,非常符合国内的国情,为国内程序员提供了很大的福利,vue技术栈的同学可以学习掌握。

第三个要说的是flutter,flutter是google推出的,开发基于dart语言,属于强类型的解释性语言,之前是为了跟js抗衡出现的,结果可想而知,js虽然设计的有缺陷,但是也有其优势不是那么容易打败的。但是dart在flutter打了个翻身仗,flutter自称能达到60帧,渲染也有自己的引擎,性能完全可以跟原生媲美,我也用过一段时间,推荐原生APP开发的学习,如果你是前端开发人员其实没必要涉猎,因为跟前端关系并不大了,如果非要学习可以了解一二,当然flutter开发web还是有点不成熟的,我也相信flutter不能取代web领域。flutter跟RN一样是UI的解决方案,它的开发对于前端程序员来说可能不太适应,感觉就像是在套娃,好的是它有热重载,开发效率会提成一大截,编译成安卓ios都是原生代码,中间没有中间层,是彻底脱离JS的,相当于没有中间商赚差价,因此性能什么的都是问题了,对于追求绝对品质和性能的同学可以学习,但是我个人理解flutter不会走的太远,因为它脱离了不太完美但是很普遍的JS和JS程序员。。

当然跨平台的框架很多,它们三个只是代表,它们的原理无非是webview派,代表的uniapp、Cordova。第二种是编译成原生组件,通过JS作为桥的:RN、weex、uniapp(nvue),还有就是编译成原生代码,没有中间商的flutter等,根据自己的实际情况选择即可,但我要说的是,我们要能用好框架才是最重要的,好的程序员用H5 套个壳子也能做出媲美原生的APP,而有的程序员用原生也不能弥补技术的差距。因此选择自己和团队擅长的才最重要

你可能感兴趣的:(前端,vue.js,react.js,flutter,react-native)