Ich habe eine Komponente, die Text basierend auf dem Mitgliedsstatus des Benutzers rendert, und ich möchte den interpolierten Text basierend auf diesem Eigenschaftswert ändern. Gibt es eine effizientere Möglichkeit, unterschiedlichen Text basierend auf Requisiten anzuzeigen, als eine Reihe von div/p-Tags mit v-if
或 v-show
zu verwenden?
Ständig eine Menge gestapelter Divs mit nur Unmengen an Text.
Für Vorschläge wäre ich sehr dankbar!
Prost!
<script lang="ts" setup> import { PropType } from 'vue' const props = defineProps({ kind: { type: String as PropType<'subscribed' | 'unsubscribed'>, default: 'subscribed', }, planId: { type: String as PropType<'standard' | 'silver' | 'gold' | 'platinum' | 'diamond' | 'no plan'>, default: 'standard', }, }) </script> <template> <div class="c-promotion-plan-card" data-cy="component-promotion-plan-card"> <div class="flex items-baseline mb-sm"> <div v-if="planId === 'standard'" class="text-h6 text-dark">Standard Gang</div> <div v-if="planId === 'silver'" class="text-h6 text-dark">Silver Foxes</div> <div v-if="planId === 'gold'" class="text-h6 text-dark">Golden Girls</div> <div v-if="planId === 'platinum'" class="text-h6 text-dark">Platinum Boys</div> <div v-if="planId === 'diamond'" class="text-h6 text-dark">Diamond Dudes</div> <div v-if="planId === 'no plan'" class="text-h6 text-dark"> No Plan Posse </div> </div> </div> </template>
是的,有更好的方法。 您可以定义一个计算属性,例如 Vue2 语法
Vue3 语法
然后在模板内调用插值计算,例如
也许类似于以下代码片段(映射您的计划并使用计算属性):