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

Vue3+Vuetify3自定义VDataTable排序指示器不显示问题

Vuetify Labs VDataTable 默认排序指示器不显示问题解决

问题场景

将项目从Vue 2迁移至Vue 3并升级Vuetify到最新版本后,使用Vuetify Labs的VDataTable组件时,表格功能正常,但表头的排序指示器无法默认显示。

问题原因

Vuetify 3 Labs版本的VDataTable排序参数格式与Vue 2版本不同,你当前使用的sortBy格式不符合组件要求,且两个表格共用同一排序参数也不符合订单簿的业务逻辑(Asks通常默认升序,Bids默认降序)。

解决方案

1. 拆分排序参数,修正格式

在组件的data中,将共用的sortBy替换为表格各自的排序字段和方向:

data: function() {
  return {
    // ... 其他数据
    // 替换原有的sortBy配置
    asksSortBy: ['price'],
    asksSortDesc: [false], // Asks表格默认按价格升序
    bidsSortBy: ['price'],
    bidsSortDesc: [true],  // Bids表格默认按价格降序
    // ... 表头配置不变
  }
}

2. 更新表格组件的绑定参数

分别为Asks和Bids表格绑定对应的排序参数,并统一分页禁用的写法:

Asks表格修改:

<v-data-table
  dense
  :sort-by="asksSortBy"
  :sort-desc="asksSortDesc"
  :headers="asksHeaders"
  :items="marketdata.asks"
  :rows-per-page="-1"
  :disable-pagination="true" <!-- 替换原options="disablePagination" -->
  class="elevation-1"
>

Bids表格修改:

<v-data-table
  dense
  :sort-by="bidsSortBy"
  :sort-desc="bidsSortDesc"
  :disable-pagination="true"
  :headers="bidsHeaders"
  :items="marketdata.bids"
  :items-per-page="-1"
>

3. 确认表头可排序配置

确保表头中需要排序的字段已设置sortable: true,你的现有配置中asksHeaders和bidsHeaders的price字段已满足该要求,无需修改。

完成以上修改后,表头的默认排序指示器即可正常显示,同时符合订单簿的默认排序逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:38:11