Vue.js:x27的最大长度是多少;键';属性(在呈现列表项时使用)?

Vue.js:x27的最大长度是多少;键';属性(在呈现列表项时使用)?,vue.js,Vue.js,我想知道,对于Vue.js(v2),在呈现列表时,应用于项目的:key属性是否必须具有最大大小?如果是的话,这个限制是多少 作为一个用例,我正在考虑使用:key=JSON.stringify(item),因为我正在设计一个组件,该组件可以处理其项可以具有各种类型的列表。这种做法不好吗 谢谢你的意见 从技术上讲,最大长度很可能受到给定浏览器中的限制。但现实地说,我强烈建议不要这样做 Vue使用这些键来创建。这意味着,当您有一个初始列表,其中键显示在左侧,然后更新到右侧,Vue可以简单地重新排列大多

我想知道,对于Vue.js(v2),在呈现列表时,应用于项目的
:key
属性是否必须具有最大大小?如果是的话,这个限制是多少

作为一个用例,我正在考虑使用
:key=JSON.stringify(item)
,因为我正在设计一个组件,该组件可以处理其项可以具有各种类型的列表。这种做法不好吗


谢谢你的意见

从技术上讲,最大长度很可能受到给定浏览器中的限制。但现实地说,我强烈建议不要这样做

Vue使用这些键来创建。这意味着,当您有一个初始列表,其中键显示在左侧,然后更新到右侧,Vue可以简单地重新排列大多数项,而不是从头开始重新排列整个列表

┌───┐    ┌───┐  
│ 1 │    │ 5 │
├───┤    ├───┤
│ 2 │    │ 4 │
├───┤ -> ├───┤
│ 3 │    │ 3 │
├───┤    ├───┤
│ 4 │    │ 2 │
└───┘    └───┘
在上面的示例中,节点2、3和4可以重新排序,而节点5将从头开始渲染。
重新排序比渲染便宜得多,因此使应用程序更快

这样做的开销基本上是两件事的总和:将左侧的键与右侧的键进行比较,然后对可以重用的节点重新排序。
当您使密钥变大时,随着密钥比较时间的增长,您很可能会抵消此操作的大部分或全部好处。此外,您将消耗大量内存,这对大多数移动设备来说都不是好兆头