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

如何让Vue Good Table的data属性label实现响应式多语言切换?

解决Vue Good Table列label的i18n响应式问题

方法一:使用计算属性(推荐)

把columns定义为计算属性,利用Vue计算属性的响应式特性,语言切换时自动重新生成带最新翻译的列配置:

computed: {
  columns() {
    return [
      {
        label: this.$i18n.t('test1'),
        field: 'typeName',
      },
      {
        label: this.$i18n.t('test2'),
        field: 'groupName',
      }
    ]
  }
}

计算属性会自动追踪this.$i18n的变化,当语言切换时,$i18n.t()返回的翻译文本更新,计算属性会重新求值,Vue Good Table就能实时获取最新的label,无需刷新页面。

方法二:监听locale变化手动更新

如果需要保留data中的columns,可以通过监听i18n的locale变化,手动更新列的label:

data() {
  return {
    columns: [
      {
        label: this.$i18n.t('test1'),
        field: 'typeName',
      },
      {
        label: this.$i18n.t('test2'),
        field: 'groupName',
      }
    ]
  }
},
watch: {
  '$i18n.locale'() {
    // 直接更新label字段,避免重新创建整个数组
    this.columns[0].label = this.$i18n.t('test1')
    this.columns[1].label = this.$i18n.t('test2')
  }
}

当语言切换时,watch监听到locale变化,立即更新对应列的label值,触发Vue的响应式更新,表格会自动刷新显示新的翻译内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:05:28