渲染具有大量节点的 Vuetify v-treeview 的最佳方法是啥?

Posted

技术标签:

【中文标题】渲染具有大量节点的 Vuetify v-treeview 的最佳方法是啥?【英文标题】:What is the best way to render a Vuetify v-treeview with a very large number of nodes?渲染具有大量节点的 Vuetify v-treeview 的最佳方法是什么? 【发布时间】:2020-02-27 13:10:08 【问题描述】:

我正在使用 Vuetify 框架显示可折叠的Treeview component:

<v-treeview
 :items="items"
 :open-on-click="false"
 :open-all="false"
 :multiple-active="false"
 hoverable
 :active-class="'text_bold'"
 return-object
 activatable
>

它的工作原理与我预期的差不多,但问题是 items 的子节点可以包含多达数百个节点 - 即使我或多或少地轻松加载它们,每次打开父节点时浏览器渲染的速度太慢。

当前,当用户单击具有太多子节点的节点时,UI 会冻结一段时间。我想要的是在渲染节点时显示加载器或微调器 - 但由于 Vuetify Treeview 中没有用于完成渲染的回调事件(我发现仅用于打开和异步调用),我无法设置回调事件。

【问题讨论】:

【参考方案1】:

最好的办法是用load-children动态加载孩子

动态加载子项时使用的函数。如果这个道具是 设置,然后如果扩展一个项目,则提供的函数将运行 有一个 item-children 属性是一个空数组。支持 返回一个 Promise。

vuetify 在他们的页面上有一个这样的例子:https://vuetifyjs.com/en/components/treeview/#async-items

【讨论】:

以上是关于渲染具有大量节点的 Vuetify v-treeview 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Vuetify 中的 VSelect 在 DOM 中显示空注释而不是渲染

OpenGL:渲染具有大量纹理透明度的模型,没有绘制顺序?

如何在带有 vuetify 和 vuex 的 Vuejs 项目中使用 Jest?节点模块和 Vuetify 问题

Vuetify Storybook remapInternalIcon 问题

Vuetify SSR分页

渲染中的Vuetify v-data-table错误:“TypeError:_a未定义”