Madeas
@Madeas
UI / UX Designer, Frontend Developer

Как заменить контент по клику?

1. Как настроить кнопки туда/сюда, чтобы менялось содержимое блока в шаблоне?

Накидал пример в песочницу


2. Как указать в шаблоне определенные блоки? Т.е. если я хочу, чтобы показывался не с первого, а, например со второго блока?
  • Вопрос задан
  • 469 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Научим компонент работать с директивой v-model.

Добавим параметр value - индекс item'а, который надо показать:

props: {
  value: Number,
  ...

computed: {
  item() {
    return this.items[this.value];
  },
  ...

<transition name="slide-fade" mode="out-in">
  <div class="content" :key="value">
    <h2>{{ item.title }}</h2>
    <p>{{ item.text }}</p>
  </div>
</transition>

Чтобы сменить отображаемый item, будем отправлять в родительский компонент новый индекс:

methods: {
  next(change) {
    const len = this.items.length;
    this.$emit('input', (this.value + change + len) % len);
  },
  ...

<button @click="next(-1)">Prev</button>
<button @click="next(+1)">Next</button>

Ну а в родителе останется связать какое-то из его свойств с экземпляром компонента слайдера:

data: () => ({
  active: 1,
  ...

<v-slider
  v-model="active"
  ...

https://jsfiddle.net/5runc0db/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы