V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
enter0218
V2EX  ›  外包

寻找大佬——小程序优化——有偿

  •  
  •   enter0218 · 56 天前 · 1484 次点击
    这是一个创建于 56 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人二流前端开发 最近遇到一些小程序优化的问题,一直想不通,对于优化无从下手,抱着学习的态度,需求大神帮忙优化,有偿,按照大佬的日薪或时薪都可。

    概况: 小程序是 uniapp + vue2 + uview 的
    主要难题:
    1 、商品分类列表卡顿问题,左边分类,右边商品,但是商品过多的话整体页面就会卡顿,优化无从下手,尝试过虚拟列表,但是业务上一个商品都展示区域是由图片的高度撑开的,滑动的时候就会上下顿挫并闪烁。
    2 、小程序自带的 we 分析显示,页面切换耗时 400ms,差于同行

    能解决的大佬留下联系方式,我加你,感恩感恩。

    小程序外部短链: https://wecom.goodsfans.com/h5/mini?t=82&c=1892
    16 条回复    2025-05-16 19:34:49 +08:00
    fenisX
        1
    fenisX  
       56 天前
    绿色软件第一部分 solo
    第二部分 13128234
    scys
        2
    scys  
       56 天前
    切换页面 400ms 是啥?好奇,包括加载资源?
    superfatboy
        3
    superfatboy  
       56 天前
    在 PC 端,点了几下,感觉还行啊, 没有感觉到明显的卡顿

    1.每次切换分类就会 loading , 难道是切换分类就会去请求一次数据么??个人建议可以考虑一次性返回,
    2.图片最好固定宽高
    tonytonychopper
        4
    tonytonychopper  
       56 天前
    很好奇你说的过多到底多少过多?接口一般都会做分页的吧,是你加载太多页之后开始卡顿吗?
    enter0218
        5
    enter0218  
    OP
       56 天前
    @tonytonychopper 对的 商品 300 左右的话卡得不得了
    enter0218
        6
    enter0218  
    OP
       56 天前
    enter0218
        7
    enter0218  
    OP
       56 天前
    @superfatboy 一次性返回,商品多的话,整个商品列表渲染出来会慢,客户不乐意
    tonytonychopper
        8
    tonytonychopper  
       56 天前
    @enter0218 #5 这个数量级不需要上虚拟列表,可以看一下是不是没有拆分组件,以及 state 管理混乱,这两种情况都会严重影响列表性能
    runningman
        9
    runningman  
       56 天前
    zhenghtcobain
    liaozzzzzz
        10
    liaozzzzzz  
       56 天前 via iPhone
    @enter0218 300 条数据就开始卡,怕不是你图片常驻内存直接爆了吧… 还有你这分类页面两个滚动高度计算有问题,导致页面滚动和商品滚动会同时存在交互混乱,另外兼容一下 iPhone 的小白条吧🥱
    dssxzuxc
        11
    dssxzuxc  
       56 天前
    @enter0218 #7 接口返回数据多与商品列表渲染慢没有直接关系,你的写法肯定有问题。同行一般是第一次请求分类然后缓存,数量少就一次性返回,没有你这种点几下就 loading 几次的做法,眼睛都要闪瞎了。
    timedivision
        12
    timedivision  
       55 天前 via iPhone
    你先把滑动问题处理一下吧,建议禁用页面滚动,用两个 scrollview 处理,你现在貌似用的 overflow scroll ?滚动穿透了
    enter0218
        13
    enter0218  
    OP
       48 天前
    @tonytonychopper 爹!!我直接叫爹!!! 你这个思路非常正确,我按照你说的,把 state 都移到最外层组件和减少 props 后,流畅得不得了 !!!
    enter0218
        14
    enter0218  
    OP
       48 天前
    @timedivision 这个不知道要怎么优化~,有思路吗?哥
    tonytonychopper
        15
    tonytonychopper  
       48 天前 via iPhone
    @enter0218 因为 Vue 是按组件更新的,如果不拆分就没法按照小粒度更新,自然也就容易卡了
    timedivision
        16
    timedivision  
       47 天前
    @enter0218 思路不是告诉你了吗,页面 disableScroll ,分类和商品用两个 scroll-view 处理
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:53 · PVG 17:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.