Здравствуйте, Я заметил, что когда данные отображаются так:
<div v-for="post in posts">
<p> {{post.content}} </p>
</div>
<code><pre>
data () {
return {
posts: [{...},{...}]
}
}
и когда я обновляю массив записей таким образом:
<code><pre>
methods: {
addPost: function (post){
this.posts.unshift(post);
}
}
VueJ анализирует все данные в сообщениях, поэтому загруженные данные перезагружаются снова, любая идея?
Обновление
<template>
<div v-for="post in postsArray" :key="post._id.$id">
<p> {{post.content}} </p>
<time>{{post.created_at}}</time>
{{log('hey')}}
</div>
</template>
<script>
import '...'
export default {
data () {
return {
posts: [{...}, {...}]
}
},
methods: {
addPost: function (post){
// display max 10 posts
if (this.posts.length >= 10)
{
this.posts.splice(9, 1)
}
this.posts.unshift(post);
},
log: function (log) {
console.log(log);
}
},
computed: {
postsArray: function () {
return this.posts.map(element => {
let post;
post = element;
post.created_at = new Date(element.created_at.sec).toLocaleDateString();
return post;
});
}
}
};
</script>
Если я добавлю сообщение, функция журнала будет вызываться 10 раз при первой загрузке и 20 раз для 10 сообщений при обновлении. Если это из-за функции журнала, есть другой способ проверить v-для итерации? На самом деле, я хочу проверить, что v-for повторяется только один раз, если я добавляю сообщение в сообщения.