Saya mempunyai komponen yang menghasilkan teks berdasarkan status keahlian pengguna dan saya ingin menukar teks yang diinterpolasi berdasarkan nilai sifat tersebut. Adakah terdapat cara yang lebih cekap untuk memaparkan teks berbeza berdasarkan prop selain menggunakan sekumpulan tag div/p dengan v-if
或 v-show
?
Sentiasa mempunyai sekumpulan div bertindan dengan hanya banyak teks.
Sebarang cadangan akan sangat dihargai!
Sekian!
<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>
Ya, ada cara yang lebih baik. Anda boleh menentukan sifat yang dikira seperti Sintaks Vue2
Sintaks Vue3
Kemudian panggil pengiraan interpolasi dalam templat, contohnya
Mungkin sesuatu seperti coretan kod berikut (petakan pelan anda dan gunakan sifat yang dikira):