信创环境前端该不该升 vue3?

2022-09-26 17:02:03 +08:00
 Southside

项目运行在信创环境下(国产 CPU ),现在用的是 vue2 ,在一些数据量大的场景下(几千条)有明显卡顿( 1-2s )。问下前端大佬们升 vue3 能解决吗?性能对比 vue2 有明显提升吗?

4771 次点击
所在节点    Vue.js
21 条回复
yamedie
2022-09-26 17:06:30 +08:00
升 vue3 解决不了这种问题, 列表太长就分页吧, 不能分页的话用虚拟滚动(virtual scroll)
mscststs
2022-09-26 17:07:54 +08:00
如果你连卡顿的原因都没找到,就在想换框架的话,我觉得换框架多半也解决不了你的问题。

建议打开浏览器 Performance 录制一下卡顿的 profile ,定位一下卡顿的原因先
shanyuhai123
2022-09-26 17:27:11 +08:00
看你使用的 UI 库,有的 UI 库的确是在 Vue3 才内置虚拟滚动。升级的话配套也得升级,需要评估下成本,不然做分页改造更简单。
statumer
2022-09-26 17:29:46 +08:00
页面卡顿应该 profiling ,怎么能卡顿就想着换框架?观察一下到底是多余的重排和 DOM 操作还是计算太复杂导致的。前端这块把优化做好性能提升 5 倍很正常。
jydeng
2022-09-26 17:33:25 +08:00
从你的描述来看,解决卡顿的工作量应该比升级 3 更少,不一定非得升级。
qbuer
2022-09-26 17:51:38 +08:00
可以直接用 vue3 测试一下数据量大的列表。
snoopyhai
2022-09-26 17:58:00 +08:00
如果没有能力定位卡顿问题,可以尝试下你看中的 vue3 框架,如果解决目前问题,那就升级吧。
wu67
2022-09-26 20:20:39 +08:00
有用但是没那么有用. 我之前整的 1 到 6 千左右的数组, 该卡的还是会卡, 所以我干脆加了 loading, 然后手动过滤分页.

你可以先就那个页面数据用 3 写个 demo, 看看实际效果满不满意, 再考虑要不要升. 不然还是花时间解决导致卡顿的瓶颈比较好
gouflv
2022-09-26 21:32:01 +08:00
升 vue10 估计可以
chunqiuyiyu
2022-09-26 21:46:10 +08:00
不该,你现在只有页面卡顿的问题,换了之后不知道会新产生多少问题。
cweijan
2022-09-26 21:46:17 +08:00
Hi, 我之前也有这个场景, vue2 使用了 https://github.com/u-leo/umy-ui, 效果不错; 最近调研了 vue3 的 naive ui 和 element plus, 测试结果是虚拟表格体验不如 umy-ui.
sjhhjx0122
2022-09-26 22:20:53 +08:00
信创电脑的浏览器是那个呢?老火狐还是那些 chrome 套壳的,数据大就自己在前端分个页吧,要不就虚拟滚动。。换 vue3 没用的,我之前 ng 项目跑起来都卡,vue2 项目就别想升级 vue3 了,新项目再开 vue3 吧
rabbbit
2022-09-26 22:24:42 +08:00
换虚拟滚动
试过 vxe-table 的虚拟树,1 万行 x 20 列 PC 端无压力
NXzCH8fP20468ML5
2022-09-27 00:11:47 +08:00
其实可以尝试用 Vue3 封装一个 web components 引入试试看
Osk
2022-09-27 00:17:37 +08:00
@sjhhjx0122 只需要知道火狐二次开发比较麻烦...

其他的不敢乱透露了...
Lighfer
2022-09-27 08:36:21 +08:00
非必要别升,vue3 还有比较容易遇到的内存泄漏问题没解决呢,信创环境本身机器配置又低
sqlNice
2022-09-27 09:34:33 +08:00
1.对于那么多的数据是否有必要让 Vue 把他们变成响应式
1.1 是否可以减少响应式的数据,比如 { id: 23, name: 'Filex', age: 18 ... } 其实你只需要 id 和 name,那么可以把对象中的其他 key 去掉后再给 UI 绑定数据

2.对于你使用的树选择器 /弹窗,检查源码实现
Nullnode
2022-09-27 10:41:38 +08:00
如果是数据量大导致的卡顿,建议虚拟列表或分页。vue2 有单独的虚拟列表组件
tuutoo
2022-09-27 10:44:16 +08:00
如果项目比较大 直接升 Vue3 风险还是比较大的 要改的东西多, 还要测试.
数据量比较大试下分页, 或者是虚拟滚动
yqxxoo
2022-09-27 14:30:33 +08:00
虚拟滚动,大批量搜索别丢主线程去做,丢 Web Workers 或者 WAMS 里面去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/883077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX