如何在vue中使用动态组件来提高性能



上下文:

目前,我正在开发一个复杂的编辑器应用程序,该应用程序使用vuex状态、vuetify的扩展面板和vue的动态组件。每个动态组件都使用被接受为道具的数据,并有自己的嵌套组件。

问题:

这种方法的问题是,当应用程序处理大型嵌套状态时,UI中的添加操作会减慢速度,使UI无法使用。

注意:

在这个例子中,我添加了1000个对象只是为了复制这个问题。很遗憾,这里不能使用分页。

有没有其他方法可以解决这个问题来提高性能,任何建议都会很有帮助。

问题:

Codesandbox-演示

Codesandbox-编辑

您使用index作为key,同时使用unshift将新项添加到数组的开头,这意味着每次添加新项时,都需要重新绘制所有组件。使用:key="item.name",您将看到添加新项目的速度大大提高。。。

初始渲染是另一个问题-如果分页不是一个选项,你可以看看一些虚拟列表解决方案,它们只渲染列表的一部分可见,并通过重用现有组件使滚动有效。一个例子是vue虚拟滚动条。Vuetify本身有自己的实现,但考虑到文档中的这一注释,我不确定它与扩展面板的配合效果如何:

我们正在将v-virtual-scroll组件集成到现有功能和组件中。如果您有兴趣提供帮助,请联系Discord社区的John Leider。

(看起来你使用的是Vuetify的旧版本…)

最新更新