Vuejs добавляет элемент сверху вниз

У меня есть код:

<comment-form @created = "add"></comment-form>

<div v-for = "(comment, index) in items" :key = "comment.id">
   <comment :data = "comment"></comment>
</div>

В миксине у меня есть метод, когда событие created, я обрабатываю этот метод:

methods: { 
  add(item) {
     this.items.push(item);
     this.$emit('added');
  }
}

Когда я добавляю новый комментарий, этот комментарий появляется ниже. Как я могу изменить и при добавлении нового комментария показать его среди всех комментариев?

Я попробовал:

v-for = "(comment, index) in items.slice().reverse()"

Но не работает, комментарии все равно идут сверху вниз.

Ваш код в посте выглядит нормально, поэтому я предполагаю, что проблема в другом. Можете ли вы раскрыть больше? Однако вы можете захотеть выполнить копирование и реверсирование в вычисляемом свойстве.

Sami Hult 28.01.2019 13:10

@SamiHult, когда я добавляю комментарий на страницу, он добавляется нормально, когда я снова добавляю комментарий, мой новый комментарий не отображается вверху, он отображается внизу, после старого комментария. Как я могу изменить это? И сделайте новый комментарий при показе перед старым комментарием.

Dronaxer 28.01.2019 13:13

Есть две альтернативы: вы либо делаете, как вы предложили, и показываете элементы в обратном порядке, либо добавляете новые элементы в начало списка: this.items.unshift(item);. Почему ваш пример кода не работает должным образом, нельзя сказать, не показывая больше кода.

Sami Hult 28.01.2019 13:18

@SamiHult unshift работает!!! Большое спасибо!

Dronaxer 28.01.2019 13:19

@SamiHult должен написать это как ответ.

Ru Chern Chong 28.01.2019 13:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
1 546
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот обновленный код:

methods: { 
  add(item) {
     this.items. unshift(item);
     this.$emit('added');
  }
}

В основном push() добавит элемент в конец array.

unshift() добавит элемент в переднюю (в 0-м индексе) позицию.

splice('insertAtIndex', 0, 'stringToBeInserted') будет использоваться для добавления элемента по определенному индексу массива.

Другие вопросы по теме