簡體   English   中英

Vue.js-默認情況下應用類,除非手動添加了類?

[英]Vue.js - apply a class by default unless a class is manually added?

我剛開始使用Vue.js,但我想弄清楚這是否可行。 給定以下組件:

<button class="button large primary-gradient">{{ text }}</button>

如果可能的話,我希望基於開發人員是否稍后將其他類添加到HTML中的按鈕組件的情況下,將“大型主要漸變”類作為條件。

例如,如果開發人員寫

<custom-button text="hi"></custom-button>

它應該呈現出來

<button class="button large primary-gradient">hi</button>

但是,如果開發人員寫:

<custom-button class="medium secondary" text="hi"></custom-button>

它應該呈現出來

<button class="button medium secondary">hi</button>

本質上,我試圖為此按鈕組件創建默認的類值,僅在開發人員不添加自己的值時才使用。 在我看來,這應該很容易做到,但是我對Vue的有限了解在某種程度上阻礙了我。 感謝您的見解!

最好使用道具來控制它:

Vue.component('custom-button', {
  props: {
    text: String,
    size: { type: String, default: 'large' },
    type: { type: String, default: 'primary-gradient' }
  },
  computed: {
    classes: function () {
      return ['button', this.size, this.type].join(' ')
    }
  },
  template: '<button v-bind:class="classes">{{ text }}</button>'
})

用法:

<custom-button size="medium" type="secondary" text="Hi"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM