抛开uni-app可以开发多端,而5+App只能开发App不谈本文只说话仅做App的情形下,uni-app的App和5+App有什么区分

5+App是DCloud上一代产品,基于webview扩大的混合开发技能它的每个页面都是一个webview加载一个html页面,调用原生扩展能力经常通过webview的桥通信实现
5+App可以满足常规App的开发,并且基于html开发比较简答但距离第一流互联网体验要求的App而言,5+App难以满足这种要求

于是DCloud新出了uni-appuni-app引入了独立的jscore,逻辑层和视图层分手,并且视图层支撑Webview渲染和nvue原生渲染的双渲染引擎,开发者可以做出更高性能和体验的App

uni-app比5+App的改进具体包罗

援用独立的js引擎,将逻辑层和视图层分手,用多线程解决卡顿题目

webview是单线程的,不管多少个webview,它们的js跑在同一个线程里,见面互相影响js即运转逻辑,又操作页面渲染,经常见面梗阻

引入独立的js引擎(jscore)后,由单线程变成双线程。将逻辑层和视图层别离,逻辑层运转在jscore里,视图层仍然在webview里,可以大幅晋升页面加载体验

比如新页面动画进入不时,在5+App里,需要先打开一个新webview,然后这个webview里的js代码去联网下载数据,下载数据后填充到页面,这样等待时间会见很长
但在uni-app里,打开新页面经常,联网是在始终都存在的jscore里进行了,同时另一个线程打开了视图层的webview页面,它们双线程并行工作而不是串行,所以新页面内容加载非常快

5+App如果惦念加速新页面速度,往往需要做预载这增加了内存占用和代码复杂度uni-app无需预载,可以快捷加载新页面

当然引入独立的jscore也会晤有代价,就是Android担保体积增加,一个Android的js引擎大约7M的体积iOS由于体系自带jscore,不需要新增js引擎体积

双线程还有一个负面题目是两个线程之间通信是需要工夫的,高频通信不能像在webview里那样自由写代码,需要依赖uni-app提供的renderjs方案来解决这类题目(react native也有这类阻塞题目,但它没有解决方案,不如uni-app)

支撑原生渲染

5+App是webview渲染的,而uni-app是双渲染引擎可选。nvue原生渲染支撑带来大量的利益,由于内容较多,本文不列举

原生插件体系改进和生态区分

5+App是基于Webview的js桥通信和原生能力对接的,这种做法,需要在原生层和js层编写大量代码才干互相对接起来

uni-app是jscore和原生能力对接的,此时原生插件编写,重要是写原生代码,插件开发工作量大幅削减、插件使用也变换的更加便利

DCloud已经淘汰了5+App的原生插件扩展模式,并且为uni-app成立了插件市场

所以uni-app有丰富的原生插件生态,这对开发者很重要挑选5+App将回天乏术享用这种生态

底部选项卡的逻辑

5+App的启动逻辑,是先打开lauchWebview,然后由这个Webview加载页面内容和逻辑,包罗创建底部选项卡每个选项卡都是一个Webview,以父子Webview嵌套方法排版全部应用的启动速度和内存占用都比较高

在uni-app里,App启动常常是原生先根据pages.json描述绘制底部选项卡,这个速度是非常快的并同时打开jscore,jscore的启动工夫也比Webview快许多。不同的选项卡的Webview不是父子嵌套,渲染压力和内存占用都要好好多

软键盘优化

  • Android软键盘底部灰一下的题目

5+App的软键盘,在Android上,弹出和收起不时,底部会见灰一下,因为键盘挪动的速度很快,而Webview的大小调节速度没那么快

uni-app里则没有这个题目

  • 软键盘右下比赛按钮自定义题目

Webview里的软键盘,右下比赛按钮回天乏术自定义为“发送”uni-app通过提供nvue原生渲染解决了这个题目

区域滚动长列表的体验和自定义下拉刷新题目

Webview的页面超长滚动没有问题,但区域想要长列表滚动就性能非常不同了

这需要uni-app的nvue里的list组件或recycle-list组件来解决没有这种技巧,好多优良的交互做不出来,比如但是吸顶、但是左右滚动的区域长列表

包罗区域长列表的自定义下拉刷新,也回天乏术在5+App的框架下给出高性能的方案,还是需要nvue的refresh组件

同屏大都Webview的内存消耗

5+App里经常需要做Webview的嵌套或同屏掩盖:

比如如果盖住map等原生组件,就需要再创立一个webview去盖住它。

比如左右拖动的顶部选项卡+长列表,需要创立多个webview形成webview group才干包管体验
这些做法非常占用内存,并且屏幕渲染经常如果处理的逻辑非常大都,招致渲染变换慢
uni-app里完全没有同屏大都webview并存的景象,它通过nvue来解决上述题目,一个nvue页面的内存占用如果比一个webview的内存占用小太多了

WKWebview的坑

由于Apple废弃了灵巧的UIWebview,强推动WKWebview,这对传统夹杂开发的应用造成了很大的限制
WKWebview的跨域题目让人非常懊恼,内存不足常常自动单屏崩溃(白屏)题目更是无解
uni-app的js由于运转在jscore而不是WKWebview里,所以不存在这些题目

uni统计

uni-app同时配套了一个强大的uni统计体系,uni统计可以免打点统计非常大都内容,是运维的好帮手

技能支持和社区生态

uni-app有十几万人的官方QQ群/微信群,各个群都活泼网络上的视频教程、经历分享也更多
5+App的使用人数比uni-app少良多,交流群活泼水平、材料丰富渡过都不及uni-app。

5+App的优势

虽然uni-app优于5+App许多,但5+App也有一些优势:

  • 入门简略:uni-app要求开发者必须掌握vue而5+App只需要会面html即可
  • 保证体积小,Android不需要引入7M的独立js引擎不管Android还是iOS都不需要引入1M的uni-app根底组件框架
  • 5+app的Android最低版本撑持到2.3、iOS最低支撑7而uni-app的Android最低是4.4、iOS最低9事实上Android4.4是2013年公布的,更低版本的手机在市场上基本没有市霸占率了

所以提议是,除非你只见面html但不会vue,也不惦念学vue,且对App的性能体验要求不高,不需要扩大原生能力,或者必须如果撑持Android4.4以下的手机,那么可以应用5+App其他场景则应当应用uni-app

本文源于uni-app官方,此文仅供应大家学习,侵删!


<仙宝云(www.xianboss.com)是国内著名商城体系及商城网站建设提供商,为企业级商家提供零售商城、B2B2C多用户商城系统、仙宝云商城体系、微信分销体系、小程序商城、商城体系等多端商城网站建设解决方案>

申明:本网站局部文章和图片起源网络编辑,如有侵权及时沟通删除,仙宝商城原创文章,转载恳求注明起源

立即

咨询

400电话

电话咨询

400-1875-778

微信咨询

李经理

微信扫一扫加好友

下载源码

返回顶部