Как создать собственные повторно используемые атрибуты для компонента кнопки, например, fab, темный, маленький, цвет=»основной» vuetify, без использования vuetity в vue .js

#vue.js #vue-component #vuetify.js #tailwind-css

Вопрос:

Я создал компонент кнопки в качестве многоразового компонента, который я хочу заменить всеми HTML-кнопками в своем проекте. Я хочу, чтобы одна и та же кнопка отображалась в основном цвете, та же в опасности, отключена и т. Д. Та же кнопка для округления с нужными значками svg внутри, что-то похожее на vuetify.

 <v-btn
  class="mx-2"
  fab
  dark
  small
  color="primary"
>
 

Я хочу передать значение цвету свойства, например цвет=» опасность», а не вводить весь CSS, и красная кнопка должна отражать. Я также хочу знать, как создавать атрибуты, такие как fab, small и т. Д., Чтобы я мог создавать их для своей кнопки . Я использую CSS tailwind для своего проекта. Я попытался создать родительский компонент, который передавал вышеуказанные значения в качестве реквизитов и использовал привязку стиля и класса, но, похоже, ничего не работает. Я хочу знать, как это сделать с помощью всего одного примера кода для кнопки, это было бы большим подспорьем.

Компонент кнопки

  <template>
<button :type="type" :class="primary" class="inline-flex items-center px-4 py-2 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-gray-700 active:bg-gray-900 focus:outline-none focus:border-gray-900 focus:ring focus:ring-gray-300 disabled:opacity-25 transition">
    <slot></slot>
</button>
 

импорт { defineComponent, ссылка , методы} из ‘vue’

экспорт defineComponent по умолчанию({
настройка() {

const primary = ссылка(‘bg-синий-500’)
ошибка const = ссылка(‘bg-red-500’)
возвращение{
первичный
}
}
})

Комментарии:

1. Это называется директивами, см. Документы: vuejs.org/v2/guide/custom-directive.html

2. Я использую Vue 3, он немного отличается. Я пройду через это

3. Или вы можете сделать так: codesandbox.io/s/romantic-sammet-ce9yf?file=/src/components/…

4. для приведенного выше кода из песочницы я хочу знать , как я могу передать <my-btn color=»успех»> при использовании этого компонента в качестве многоразового решения

5. color является ли один из реквизитов, который может быть определен на my-btn компоненте и на основе значения (например: success будет иметь класс btn-success-class )