Реактивность объекта с CSS классами в Vue

Объект с CSS классами предназначен для того, чтобы удобно было реактивно назначать классы элементам. Давайте посмотрим, как это делается. Пусть у нас есть следующий объект с классами:

javascriptdata() {
  return {
    styles: {
      done: false,
    },
  }
}

Привяжем этот объект к тегу:

App.vue<template>
  <p :class="styles">text</p>
</template>

Пусть наличие класса done перечеркивает текст тега:

cssp.done {
  text-decoration: line-through;
}

Сделаем кнопку, нажатие на которую будет изменять объект со стилями, включая класс done:

App.vue<template>
  <button @click="setDone">hide</button>
</template>

Напишем соответствующий метод:

App.vuemethods: {
  setDone: function() {
    this.styles.done = true;
  }
}
Задание 1

Дан следующий объект с CSS классами:

javascriptdata() {
  return {
    obj: {
      hidden: true,
    },
  }
}

Пусть наличие этого класса прячет элемент:

cssp.hidden {
  display: none;
}

Примените объект с классами к какому-нибудь тегу с текстом.

Задание 2

Сделайте кнопку, нажатие на которую будет показывать элемент.

Задание 3

Сделайте кнопку, нажатие на которую будет прятать элемент.

Задание 4

Сделайте кнопку, нажатие на которую будет тогглить элемент (показывать, если скрыт; скрывать, если показан).