You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vuetify v-data-iterator中自定义JS对象键的显示名称?

解决Vuetify v-data-iterator键名友好显示的问题

你可以通过两种方式实现原始键名到友好显示名称的转换:

方法一:自定义键名映射对象

创建键名与显示名称的映射表,精准控制每个字段的显示文本:

  1. 在组件中定义映射对象:
// Options API
data() {
  return {
    keys: [
      'Currency',
      'Price',
      'price_date',
      'num_of_exchanges',
      'market_cap',
      'market_cap_dominance',
      'High',
      'high_time_stamp',
    ],
    keyDisplayNames: {
      'Currency': 'Currency',
      'Price': 'Price',
      'price_date': 'Price date',
      'num_of_exchanges': 'Number of Exchanges',
      'market_cap': 'Market Cap',
      'market_cap_dominance': 'Market Cap Dominance',
      'High': 'High',
      'high_time_stamp': 'High Timestamp'
    }
  }
}

// Composition API (Vue 3)
const keys = ref([
  'Currency',
  'Price',
  'price_date',
  'num_of_exchanges',
  'market_cap',
  'market_cap_dominance',
  'High',
  'high_time_stamp',
])
const keyDisplayNames = ref({
  'Currency': 'Currency',
  'Price': 'Price',
  'price_date': 'Price date',
  'num_of_exchanges': 'Number of Exchanges',
  'market_cap': 'Market Cap',
  'market_cap_dominance': 'Market Cap Dominance',
  'High': 'High',
  'high_time_stamp': 'High Timestamp'
})
  1. 在v-data-iterator模板中使用映射对象:
<v-data-iterator :items="yourCryptoData">
  <template v-slot:item="{ item }">
    <div class="crypto-row">
      <div v-for="key in keys" :key="key" class="crypto-field">
        <strong>{{ keyDisplayNames[key] }}</strong>: {{ item[key] }}
      </div>
    </div>
  </template>
</v-data-iterator>

方法二:通用键名格式化函数

如果大部分键名是下划线分隔格式,可通过工具函数自动转换,减少重复配置:

  1. 定义格式化函数:
// Options API
methods: {
  formatKeyName(key) {
    return key.split('_')
      .map(word => word.charAt(0).toUpperCase() + word.slice(1))
      .join(' ')
  }
}

// Composition API
const formatKeyName = (key) => {
  return key.split('_')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ')
}
  1. 在模板中调用函数:
<v-data-iterator :items="yourCryptoData">
  <template v-slot:item="{ item }">
    <div class="crypto-row">
      <div v-for="key in keys" :key="key" class="crypto-field">
        <strong>{{ formatKeyName(key) }}</strong>: {{ item[key] }}
      </div>
    </div>
  </template>
</v-data-iterator>

该方法会自动将price_date转为Price Date、num_of_exchanges转为Num Of Exchanges,若需个别字段特殊调整,可在函数内添加判断逻辑,或结合映射对象使用。

内容的提问来源于stack exchange,提问作者Yavor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:57:24