首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

TanStack Table V9测试版:Tree-Shakable特性、TanStack Store状态与重要内存的使用

2026-08-13 1 阅读 约5分钟阅读 作者:Daniel Curtis
分享:
字号:
TanStack Table "是一个用于在各种JavaScript框架中构建表格和数据网格的headless UI库,最近发布了 TanStack Table V9 beta版本 ",该版本在保持开发者熟悉的核心表格逻辑的同时,重构了状态管理、内存使用、打包体积与可扩展性。 该beta版本于2026年6月8日通过 X "发布,引入了基于 TanStack Store "的状态管理、通过状态订阅实现的细粒度重渲染控制、大规模下更低的内存占用、带类型安全的可tree-shake特性、更清晰的插件模型以及重写的开发者工具。它支持React、Preact、Angular、Solid、Vue、Svelte和Lit等框架。 最显著的变化是特性现在改为按需注册。在V8中,所有特性会一起发布,但V9仅注册表格实际使用的部分,因此一个小表格可以只有大约5 kb,而完整的企业级网格则可以在需要时引入排序、过滤和分页等功能。TypeScript会强制执行这一点,因此,诸如setSorting之类的API仅在对应特性被注册后才存在。 另一个重要变化是状态管理。 迁移指南 "说明,useReactTable变为useTable,状态现在通过table.state、table.store以及每个切片的atoms流动,而不再通过getState()。新的table.Subscribe允许行选择变化只重新渲染显示计数的组件,而不会触及表实例的所有控制项。主维护者Kevin Van Cott表示该设计直接借鉴自TanStack Form与Store,并称React Compiler的稳定迫使他们进行重写,因为在V8的模式下已经“开始出现问题”。 Van Cott对多年的延迟表现得非常坦率,承认该发布“似乎花费了太长的时间”,并表示试图一次性修复所有关于V8的抱怨是“一个大错误”,下一次会采取不同的做法。 在 Medium "上的一篇文章中,Ahmad Fiaz提醒说,“v9测试版中的新atoms API并非对受控状态的直接替代,并且这一区别在Angular与React应用中同样重要。”可扩展性方面的工作也回应了一个反复出现的问题,在一条 Reddit讨论 "中,有开发者形容在项目增长时,“与其说是在写代码,不如说我在折腾这个库”。 在 r/reactjs的公告 "中有一段交流反映了插件模型在用户中的接受情况。评论者Arceus919询问针对每个表的状态是否仍然是一个潜在的问题: 我看得没错的话,仍然没有 针对每个表格的元数据(per-table meta) ",一切仍然是全局的 :我的应用中有很多功能密集型的表格,所以针对每个表格的元数据对我来说是必须的,我已经创建了自己的 useTable hook "来支持它,但希望有一天能切换过来 Van Cott通过其刚刚发布的一个关于表和列元数据的功能以及 指南 "进行了回应。 迁移设计为渐进式的。useLegacyTable hook在V9之上能够接受V8风格的API,而导入stockFeatures则以牺牲打包体积为代价恢复旧的全量包的行为。表的标记本身没有变化。 与AG Grid或MUI X Data Grid等商业方案相比,TanStack Table保持headless且免费,像 Material React Table "这样的封装库则建立在底层框架之上。V9目前处于测试阶段,该版本的定位是作为未来发布的基础。 查看英文原文: TanStack Table V9 Beta: Tree-Shakable Features, TanStack Store State, and Lower Memory "
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱