【问题标题】:Vuejs - When to use v-for? v-html?Vuejs - 何时使用 v-for? v-html?
【发布时间】:2017-02-23 02:31:05
【问题描述】:

当使用 VueJS 显示项目列表时,使用 v-for 指令显然很容易做到。同样的事情可以通过使用computed 属性来返回html 并使用v-html 显示。

<ul>
  <template v-for="item in items">
    <li><span class=myItem">{{ item }}</span></li>
  </template>
</ul>

对比

<div v-html="compiledHtmlList"></div>

我注意到,对于我的用例,v-html 呈现大约 30K 项的字符串列表比 v-for 快几秒钟。由于我是 VueJS 的新手,想知道性能上的差异是否是预期的,如果是,为什么?如果不是,是否还有其他原因选择其中一个?

【问题讨论】:

  • 尝试仅更改列表中的一项并比较渲染时间(仅用于更改)
  • 我希望只更新v-for 会更快。我之前做过眼科检查,但没感觉有什么不同。不幸的是,代码在工作计算机上;肯定会更彻底地测试它。

标签: vue.js vuejs2


【解决方案1】:

v-for 加载速度较慢,但​​在列表更改时会更快。 v-html 会有更快的加载时间,但是加载时间会和更新时间一样。

因此,如果列表是静态的并且在呈现期间不会更改(例如可以删除的项目列表),您可以使用 v-html,但如果该列表可以更改,请使用 v-为。

【讨论】:

  • 这是有道理的。您能否进一步解释一下 Vue 在幕后所做的工作,这使得 v-for 更新速度更快?它是否在 dom 元素上创建某种索引?
猜你喜欢
  • 2021-02-21
  • 2020-09-08
  • 2020-04-04
  • 1970-01-01
  • 2021-12-04
  • 2019-10-26
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多