用途:在 TanStack Table Core 中实现列分面筛选,为筛选控件提供可选项与计数。分面只负责派生筛选选项,不负责渲染控件。
主要能力:通过 columnFacetingFeature 启用分面;facetedRowModel 让分面响应表格其他生效筛选;facetedUniqueValues 提供离散值计数;facetedMinMaxValues 提供数值最小/最大值。
用法:需与 columnFilteringFeature、filteredRowModel 配合。注册时每个分面 getter 都需要对应的工厂槽位,例如 tableFeatures({ columnFilteringFeature, columnFacetingFeature, facetedRowModel: createFacetedRowModel(), facetedUniqueValues: createFacetedUniqueValues() })。读取计数用 table.getColumn('status')?.getFacetedUniqueValues() ?? new Map(),读取范围用 table.getColumn('age')?.getFacetedMinMaxValues()。离散控件用唯一值,数值区间用 min/max。单独导入的内置筛选函数需按约定键注册,列才能用字符串名引用;也可直接传函数。
限制:列分面会排除该列自身的筛选,同时应用其他筛选;服务端分页时客户端分面只能看到已加载数据,需改用服务端分面。具体 getter 与工厂返回类型可查看 node_modules/@tanstack/table-core/dist/features/column-faceting/。