公司要做几个APP,页面很多,算大型APP吧,目前公司原生开发人员基本就一两个,大部分功能要用前端做,但是有涉及到一些和原生的交互,而且不少,目前的方案是纯H5(VUE+webpack,模块化载入,懒载入,缓存这些都有做),就套了webview的壳,但是项目越来越大,感觉性能不是很好了,还有没有其他方案可选?


三个选项:

nativescript最近正式支持VUE了。

ionic支持angular。

react native当然是react了。

过去一年里接触了很多银行、铁路、地铁等,基本人员配置都差不多,原生开发很少,主要是前端开发,随著手机性能逐渐变好,WebView和原生App的差距不断变小,现在的App更多的重视动态性,性能相对次之,所以在这个时候要选用动态跨平台解决方案。

  1. 纯前端外面套WebView壳
  2. RN、Weex跨平台解决方案
  3. 基础框架+离线包技术

1 很明显优点是简单,缺点是性能相当不好。

2 优点是性能不错,但过于负责,关键是坑多且深。。。

所以个人比较推崇第三种解决方案,基础框架搭好完成埋点、热修复等等,配上H5容器,H5容器提供jsapi,尽可能的利用Native来提高H5的性能,这里的容器我一般用自己开发的,系统的还是挫了点。。

Vue解决方案其实本身没问题,就是编译后生成的代码有冗余,比jQuery等其实是要慢的,但通常项目大了并不会有明显的性能问题,因为可以拆包控制包大小,用全局的包放资源,资源可以放CDN,等等有很多策略。。


基于 service worker 构造端内预载入方案,优化浏览器启动、memory cache。

缓存是解性能问题的重点方向。


ng+ionic+cordova性能稍慢,还能接受。


项目性能和项目大小关系不大,性能主要应该还是在你的脚本打包方式是不是单页面单个打包,有没有缓存架构支撑,webpack是支持单个引用单独打包

可以的话可以采用cordova的打包方案,印象里是会webview对js的处理有类似懒载入的设计

美团之类的应该也是混合方案,所以我想楼主在构建层面应该还有优化的空间


反正千万别用react-native和weex这种不成熟的方案,连1.0都没有,小厂hold不住的。

性能问题还是需要定位更具体一点,套壳h5还算是相对成熟的方案了,相信大部分都是有办法解决的。


大型项目就写原生的啊,人不够招人啊


很简单,如果是长期合作,自己掏钱也得把原生人员补齐了,如果是一锤子买卖,那就h5结合原生,因为数据耦合和架构耦合是硬伤,做一版之后,赶紧跳槽走人……


使用夸平台技术cordova


性能问题,有时候不是说开发语言问题,而是项目优化问题,比如有没用模块化载入,有没用缓存,有没用懒载入,列表优化问题。

如果项目业务功能比较多,又担心性能问题,可以考虑用React native 比较好一点。


推荐阅读:
相关文章