杨大宝
杨大宝
  • 发布:2020-05-25 15:51
  • 更新:2021-03-05 16:53
  • 阅读:2447

为什么nvue和weex差别这么大

分类:nvue

由于最近公司需要重构大量项目(约100+App),体量是非常庞大的,为了实现快速开发,我就选择使用uniapp开发,公司起初考虑是flutter,被我拒绝了(刚出来的时候我就比较看好uniapp),尤其是看到整合了weex即nvue的时候突然就感觉这个选择妥妥的,因为我们使用过weex和rn这种框架,表现还是不错的,但是其他方面人员、生态、易用性不太好,uniapp正好解决了这个问题。但是在我们进行完一轮重构之后,发现其实nvue在整体表现上有的居然还是不如vue页面好,这个还是比较诧异的,我们可以拿纯weex的项目在低端机型上跑,性能都是非常不错的,几乎看不出有什么问题,但是nvue的渲染速度似乎就差了一个档次,即便在高端机上面也还是会有问题,尤其是安卓,iOS在7以上没有明显感觉。但是纯weex的项目就不会出现这种问题啊,这令我很费解,我们对性能和体验要求还是比较高的,以至于对后面的开发产生了疑问,到底还该不该继续走这条路,略微有些担忧啊。关于nvue渲染慢的问题,希望官方大大们看到后给个解决方案,或者给个解决思路。

2020-05-25 15:51 负责人:DCloud_App_Array 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

2.7.13起,已经支持nvue的预载了。
3.1.1起,又新增了按组件整体渲染,而不是从上到下逐行渲染 详情

  • 杨大宝 (作者)

    非常棒,第一时间体验,确实解决了很大一部分问题,感谢大大们的努力。还有点建议:可不可以把这个直接放在navigateTo的时候判断如果nvue那么就先预加载再入栈,或者preloadPage加载完成后再触发success回调^_^


    2020-06-17 14:24

  • DCloud_heavensoft

    回复 汉中李: 3.1.1起,又新增了按组件整体渲染,而不是从上到下逐行渲染 详情


    2021-03-05 16:53

  • makeit

    加了render-whole后 ,页面是整体渲染了,但是在页面展示的一瞬间,屏幕会闪一下。就像照相机的闪光灯一样。 android 4.4


    2021-12-08 18:12

DCMarvel

DCMarvel

测试感觉VUE先渲染在入栈,NVUE 先入栈在渲染!这个问题很多人反映过了

DCloud_App_Array

DCloud_App_Array

nvue页面本身是weex引擎渲染的,理论上与纯weex项目是完全一致的。
你这里说的纯weex项目是怎么做的?
提供下存在较大性能差异的页面

  • 杨大宝 (作者)

    主要还是在渲染方面,就拿uni-ui 里的日历组件来说吧,vue页面在点击的时候会进行预加载,有点延迟然后打开页面,不过从入栈动画就能看出是已经渲染完的,而nvue点击响应很快但是明显能看出加载过程,日历的日期一排一排的加载,主要就是这个问题。


    2020-05-25 17:28

  • DCloud_heavensoft

    回复 杨大宝: 并不是所有场景下,nvue都比vue有优势,具体场景见nvue的文档。但如果你觉得weex的项目,在某些地方比nvue好,那就详细描述出来,我们看看怎么回事


    2020-05-25 17:36

  • 杨大宝 (作者)

    回复 DCloud_heavensoft: 其实只要能在渲染时客户无感就好了,虽然算下来渲染时间很短,但是直观感受确是大不相同,看看有没有什么办法解决一下,有个延迟的方法也是可以的。


    2020-05-26 17:06

  • DCloud_heavensoft

    回复 杨大宝: 我们内部正在讨论延迟和预载方案


    2020-05-26 22:01

  • 杨大宝 (作者)

    回复 DCloud_heavensoft: 太棒了,期待


    2020-05-27 15:44

  • DCloud_heavensoft

    回复 杨大宝: nvue预载,已经在2.7.13上发布


    2020-06-16 15:22

Absorbed66c

Absorbed66c - 码农一枚

希望尽快解决这个问题。

DCloud_heavensoft

DCloud_heavensoft

HBuilderX 3.0更新日志:

  • 【重要】App平台 新增 nvue 组件支持 render-whole 属性。可以按组件整体渲染,而不是从上到下逐行渲染 详情

该问题目前已经被锁定, 无法添加新回复