javascript - Vue : Render v-for incrementally?

标签 javascript vue.js vue-component v-for

我有一个 v-for 循环,可以多次渲染 ChessGame 组件。然而,ChessGame 组件比较复杂,加载时间较长,每个组件需要数百毫秒,并且循环渲染数十个组件。所以网站总是卡住几秒钟,什么也没有显示,然后才显示所有游戏。

是否有提示我可以让 Vue 在每次迭代后重新渲染,以便页面慢慢填充它们?或者 Vue 模板的工作方式不支持这一点?

<ul v-for="(game, index) in competitions[selected_competition].games" v-bind:key="game.pgn">
  <div>
    <h4>Game {{ index+1 }}</h4>
    <ChessGame :id="'board_' + index" :ref="'board_' + index" :gameinfo="game" style="width: 400px"></ChessGame>
  </div>
</ul>

最佳答案

Is there a hint that I can give Vue to rerender after each iteration, so that the page slowly fills with them?

据我所知,vue 中没有这样的功能来缓慢显示您的数据,尽管在数据准备好之前您可以做的是显示骨架加载器。

这是一种现代方法,几乎​​每个大公司都使用这种技术,以指示某些内容正在加载,直到我们提供数据。

我建议您从 vuetify 检查这一点: https://vuetifyjs.com/en/components/skeleton-loaders/

关于javascript - Vue : Render v-for incrementally?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65665146/

相关文章:

javascript - 找出在 Ember ArrayController 中更改的单个项目

javascript - (向后/向前)按键时的 DOM 导航

javascript - 如何在另一个 javascript 中调用基于 javascript OOPS 的类

javascript - 继承odoo中web模块的view_form.js

vue.js - 将数据传递到 Vue 模板

Vue.js - 选择/下拉所选项目 vm 绑定(bind)不起作用 (bootstrap-vue)

vue.js - 如何在 Nuxt 2 和 3 中获取当前路由名称?

javascript - Axios 在 Controller 返回对象对象中发送 formData

javascript - Vuetify 容器不会填满高度

javascript - 父插槽中的可重用组件访问子方法