javascript - 在这种情况下,v-if 的另一种解决方案是什么?

标签 javascript vue.js vuetify.js

我正在尝试以一种好的方式使用 v-if,但到目前为止它看起来很愚蠢。 Codepen

这是当前的一段代码,我试图根据功能的标题选择“图标”:

<v-icon v-if="item.title === 'A day' ">close</v-icon>
<v-icon v-if="item.title === 'A week' ">close</v-icon>
<v-icon v-if="item.title === 'A month' ">check_circle_outline</v-icon>
<v-icon v-if="item.title === 'Forever' ">check_circle_outline</v-icon>
new Vue({
  el: '#app',
  data () {
    return {
      menuItems:[
        {
          title: 'A day', 
          price: '$50',
          features:['Exercise','Consult','Personal meeting'],
          action: 'check_circle_outline'
        },
        {
          title: 'A week', 
          price: '$200',
          features:['Exercise','Consult','Personal meeting'],
          action: 'check_circle_outline'
        },
        {
          title: 'A month', 
          price: '$500',
          features:['Exercise','Consult','Personal meeting'],
          action: 'check_circle_outline'
        },
        {
          title: 'Forever', 
          price: '$5000',
          features:['Exercise','Consult','Personal meeting'],
          action: 'check_circle_outline'
        }
      ],
    }
  }
})

首先我尝试了这个:

<v-icon v-if="item.title === 'A day' || 'A week' ">close</v-icon>
<v-icon v-else>check_circle_outline</v-icon>

这行不通,不知道为什么。

能否请您帮助找到根据标题调整图标的正确解决方案?

最佳答案

我认为在这种情况下,条件语句在模板上会更好。如果您想进行边际优化,您可以将正则表达式拉出一个常量。

// In template
<v-icon>{{ durationText }}</v-icon>

// in component
computed: {
  durationText() {
    const dayOrWeekRegex = /(day|week)/i
    if (dayOrWeekRegex.test(this.title)) return 'close';

    return 'check_circle_outline';
  }
}

关于javascript - 在这种情况下,v-if 的另一种解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52489407/

相关文章:

javascript - vue.js 数据在增加时不更新

javascript - 为什么这个函数在应该返回 true 的时候返回 false?

javascript - 无法使用 Laravel 和 Vue 获得正确的链接

javascript - 如何根据力沿弯曲路径移动元素?

javascript - 数据未在 axios post 请求中传递

javascript - 带有 DateTimePicker 的日期选择器

css - 更改输入或文本区域内的字体颜色

javascript - 用python更新 Electron 中的元素(和 flask ?)

javascript - 在 TypeScript 中扩展 Vuetify 组件

css - 如何根据同胞子属性更改样式