Javascript 如何防止在添加到列表时重新呈现v-for语句中的项

Javascript 如何防止在添加到列表时重新呈现v-for语句中的项,javascript,vuejs2,Javascript,Vuejs2,所以我使用v-for在feed中呈现帖子(类似于facebook的feed),很多帖子都有链接显示为嵌入式iframe预览。我正在使用第三方服务来检索这些嵌入,我只是插入链接,它将异步加载(在PostUI片段已经呈现在屏幕上之后) 我有一个无限滚动的行为,所以当你滚动到更低的位置时,通过在数组末尾添加更多的对象(使用.push)加载更多的帖子,然后v-for相应地渲染它们,因此加载更多的嵌入,一切都很好 但是,当我使用.unshift()将新的post对象添加到提要数组的开头时,问题就出现了。执

所以我使用v-for在feed中呈现帖子(类似于facebook的feed),很多帖子都有链接显示为嵌入式iframe预览。我正在使用第三方服务来检索这些嵌入,我只是插入链接,它将异步加载(在PostUI片段已经呈现在屏幕上之后)

我有一个无限滚动的行为,所以当你滚动到更低的位置时,通过在数组末尾添加更多的对象(使用.push)加载更多的帖子,然后v-for相应地渲染它们,因此加载更多的嵌入,一切都很好

但是,当我使用.unshift()将新的post对象添加到提要数组的开头时,问题就出现了。执行此操作时,阵列中的所有后续帖子似乎都会重新渲染嵌入预览iFrame(预览消失,然后重新加载)

我想知道为什么会发生这种情况,以及我将如何防止这种情况,因为它显然不是很好的用户体验,因为它会严重滞后于用户的浏览器


目前使用vue 2.5.17

我不会使用
v-for
并使用js将提要插入dom,或者我会在dom中的某个位置创建嵌入并隐藏它们,然后使用某种id引用它们并将它们复制到提要中。@KubwimanaAdrien有趣的方法,感谢您使用
:key
属性和v-for的解决方案?此外,它应该是唯一标识符,而不是索引(因为它在取消移动时会更改)。@yuriy636是的,我使用的是基于帖子id的唯一键,仍然是-renders@ZachLeighton看起来很有希望,但keep alive更适合在条件组件之间切换,而不是v-for,至少根据我从文档中了解到的情况,并在我的代码中进行测试,我要么不使用
v-for
并使用js将提要插入dom,要么在dom中的某个位置创建嵌入并隐藏它们,然后使用某种id引用它们并将它们复制到提要中。@KubwimanaAdrien方法,感谢您使用
:key
属性和v-for的解决方案?此外,它应该是唯一标识符,而不是索引(因为它在取消移动时会更改)。@yuriy636是的,我使用的是基于帖子id的唯一键,仍然是-renders@ZachLeighton看起来很有希望,但keep alive更适合在条件组件之间切换,而不是v-for,至少从我从文档中了解到的,并在我的代码中测试它