小明子
小明子
  • 发布:2019-05-14 10:10
  • 更新:2019-09-20 18:41
  • 阅读:9058

uni-app页面卡顿问题依旧存在

分类:uni-app

实践证明,uni app中依次打开的页面数量达到8-9个左右,卡顿的不行。

希望官网能给一些优化方案,因为确实很多业务场景需要依次打开很多页面的。

2019-05-14 10:10 负责人:无 分享
已邀请:
g***@126.com

g***@126.com

这个问题我也遇到,解决方式页面跳转多使用redirectTo,尽可能避免使用navigateTo,页面之间的参数传递可使用全局变量或者页面间传递。

  • 小明子 (作者)

    redirectTo有问题啊,页面返回的话,又是打开新的页面了。传参的话,demo都是用url传参,不是很方便,可以使用vuex,或者localstorage。


    2019-05-14 10:25

  • g***@126.com

    回复 小明子: 其实我讲的也是尽可能避免,不要出现使用连续navigateTo,比如三级navigateTo的方式,如果中间使用了navigateBack(-2),这时候中间页就不会被关闭了,所以两级navigateTo是不会影响性能的。


    2019-05-14 10:36

  • g***@126.com

    回复 小明子: 这个也看具体场景,比如订单页面,先选择客户,navigateTo到订单,然后navigateTo到产品选择,之后navigateBack到订单,然后订单结束,直接回到主页,这时候内存就会多出一个选择客户页面不会被关闭,操作次数多了就会卡,就成为了C语言的内存泄露了,因为未关闭的客户页面会越来越多。


    2019-05-14 10:41

  • 小明子 (作者)

    回复 g***@126.com: 官方的demo基本都是2级页面,根本测试不出问题,之前用mui还能自己控制窗口,现在都被封装了,很蛋疼。 回到首页相当于关闭了其他打开的窗口,肯定没问题,但是很多业务不是页面,他们要求回到业务HOME页面,继续做其他交易,这样就很麻烦了。 说白了,只要不是调用relanuch的话,要么是打开新的页面,要么是在当前页面打开新的页面,不会关闭之前的页面。


    2019-05-14 10:59

  • DCloud_UNI_HT

    回复 g***@126.com: 你说的有个页面没关闭,是怎么得出来的结论? 如果真没关闭的话,肯定是bug,需要修复的。我按照你的这种方式写了个demo,并没有发现页面没有关闭的问题。麻烦提供一个简单的demo,我来复现一下。


    2019-05-15 18:00

  • 小明子 (作者)

    回复 DCloud_UNI_HT: 给您画一个业务场景吧,你帮忙看看怎么解决,之前mui的那套可以解决,现在uni的我还没想到。场景如: 录入交易:Home->A->B->C->D,交易完成后需要:D->A。 最终状态是 Home和A页面不能关闭,B,C,D需要关闭。


    2019-09-10 14:59

  • 蹦豆儿

    回复 小明子: 从b->C->D->A用redirect, 其它用navigationto不行吗?


    2020-03-11 13:34

花朝十二

花朝十二

解决了没,我的是九个子页面反复跳转一会就卡顿了

  • 小明子 (作者)

    解决不了,不能打开太多页面,webview本身太重。 即使是阿里的mpaas也不能打开太多页面,不然一样的卡顿。业务复杂的,需要打开很多子页面的,可以考虑局部使用SPA解决。


    2019-09-10 14:53

迪丽热bug

迪丽热bug

我一个页面逻辑比较赋值 然后跳转需要要等好久时间...

DCloud_heavensoft

DCloud_heavensoft

用nvue可以避免这个问题

  • 小明子 (作者)

    这么说的话,还是因为webview太重了。占用内存相对于nvue原生的多。 其实这个问题支付宝的混合框架也存在这个问题


    2019-09-23 16:09

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