共计 1853 个字符,预计需要花费 5 分钟才能阅读完成。
当初跨平台开发不是新鲜事了,各个跨平台框架都曾经百花齐放,各有千秋。我自己是一名前端开发程序员,对各个跨平台框架都有所涉猎,明天大略说一下各个框架的劣势及劣势,供大家在开发过程中提供参考。
首先要说的是 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,而有的程序员用原生也不能补救技术的差距。因而 抉择本人和团队善于的才最重要。