#vue.js #vuejs2 #vue-component
#vue.js #vuejs2 #vue-компонент
Вопрос:
У меня есть два элемента в двух строках рядом друг с другом:
Я ввел их все в массив объектов и вызвал их через props, чтобы отобразить их в левом.
Теперь то, что я хочу сделать, это когда я нажимаю на любой канал из левого элемента, он отображается справа с первым элементом перед ним и после него в массиве, поэтому я собираюсь использовать функцию $emit
with @clicked
, чтобы получить событие для его вызова на app.vue
. Но я не знаю, что делать после, чтобы он отображался.
Я чувствую, что должен создать новый компонент, но я в недоумении относительно элементов внутри.
Редактировать: Извините, я забыл упомянуть, изображение — это дизайн, а не результат моего кода, я мог создать только левый «список станций» и возникла проблема с выполнением правой части на основе щелчка левой части
Комментарии:
1. Вам необходимо включить соответствующий код
2. Похоже, что ваше представление уже знает, как развернуть только одну из станций в списке справа, поскольку расширена только одна. Вы сделали это таким образом:
<div v-if="index_in_this_list === expanded_index">Expanded content here
?3. Извините, я забыл упомянуть, что изображение — это дизайн, а не результат моего кода, я мог создать только левый «список станций» и возникла проблема с выполнением правой части на основе щелчка левой части
4. Вам нужно немного уточнить свой вопрос — чего вы надеетесь достичь в своем коде?
Ответ №1:
Вы действительно можете создать 2 компонента. 1 компонент, содержащий список всех станций. другой компонент, отображающий сведения о радиостанции. В тот момент, когда вы нажимаете станцию в списке, она отправляет событие и обновляет свойство в vue.app. Это может, например, называться selectedStation. ваш компонент, который показывает подробную информацию о радиостанции, просто получает prop с подробной информацией о станции.
Комментарии:
1. Я знаю, мой дорогой сэр, что я могу, я просто не понимаю, как это сделать, точный код или механику этого