大佬们来解释一下这个奇怪的 bug - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhj0326
V2EX    问与答

大佬们来解释一下这个奇怪的 bug

  •  
  •   zhj0326 96 天前 961 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个 vue3 项目在本地和部署到测试环境都可以正常访问,但是部署到正式环境就会有问题,访问 A 页面没有任何问题,访问 B 页面就会直接卡死,控制台都按不出来,CPU 也没有直接卡爆,是一点儿一点儿的涨 代码都是同一套,打包也只是根据不同环境使用了不同的 api ,别的代码都是一样的

    最后排查出来是因为一个 for 循环使用了 reverse() v-for="item in list.reverse()",删除了 reverse() 就恢复了正常,疑惑是为什么打包到测试环境就没有问题,打包到正式环境就会出现页面卡死的情况

    6 条回复    2025-08-05 15:43:30 +08:00
    954758514
        1
    954758514  
       96 天前
    结合环境,上下文排查呗。再不行了代理到生产环境 debugger 一下。
    JoeJoeJoe
        2
    JoeJoeJoe  
    PRO
       96 天前
    盲猜 list.reverse()会改变 list, vue 监听 list 改变, 又触发了渲染
    你把 list.reverse()提出来, 当个属性试试
    -------
    至于测试环境没事, 生产环境有问题, 这个得具体看, 有可能测试环境也是有问题的, 但是数据少, 你体验不出来. 仔细检查一下
    zhj0326
        3
    zhj0326  
    OP
       96 天前
    @954758514 佬,找到问题是因为“reverse()”了,疑惑的是为什么“reverse()”会在不同环境造成这个结果
    zhj0326
        4
    zhj0326  
    OP
       96 天前
    @JoeJoeJoe 如果我直接给 list = [] ,就不会出现这个 bug ,测试环境和正式都没有多少数据,不是数据量的原因
    JoeJoeJoe
        5
    JoeJoeJoe  
    PRO
       96 天前   2
    @zhj0326 #4 你提成计算属性应该能解决, 至于生产/测试环境的差异, 可以再研究一下, 给大家分享分享.

    -----------
    > '如果我直接给 list = [] ,就不会出现这个 bug "
    因为没数据, 不变化, 肯定是不会自动触发渲染的.

    ---------
    ps: 尽量不要在模板的数据源中调用方法, 可以用计算属性来替代
    chenluo0429
        6
    chenluo0429  
       96 天前 via Android
    开发模式下会有一个 checkRecursiveUpdates 的机制检查递归更新的次数,达到上限 100 之后就会抛错中断的,你在控制台应该可以看到错误打印。
    构建之后这种耗性能的检查都去掉了,所以你就会无限循环卡死掉了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1048 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:54 PVG 01:54 LAX 09:54 JFK 12:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86