vercel-react-best-practices(Vercel React 最佳实践)
io.github.calesthio/OpenMontage/vercel-react-best-practices
来自 Vercel 工程团队的 React 与 Next.js 性能优化指南。在编写、审查或重构 React/Next.js 代码以确保最优性能模式时使用。涉及 React 组件、Next.js 页面、数据获取、包体积优化或性能提升的任务触发。
“React” 共 425 个结果
io.github.calesthio/OpenMontage/vercel-react-best-practices
来自 Vercel 工程团队的 React 与 Next.js 性能优化指南。在编写、审查或重构 React/Next.js 代码以确保最优性能模式时使用。涉及 React 组件、Next.js 页面、数据获取、包体积优化或性能提升的任务触发。
io.github.QuantumNous/new-api/vercel-react-best-practices
来自 Vercel 工程团队的 React 与 Next.js 性能优化准则。在编写、审查或重构涉及组件、Next.js 页面、Server Components、Server Actions、数据获取、bundle 体积、渲染行为或性能提升的 React/Next.js 代码时使用。
io.github.yikart/AiToEarn/vercel-react-best-practices
来自 Vercel 工程团队的 React 与 Next.js 性能优化指南。在编写、审阅或重构 React/Next.js 代码以确保最优性能模式时使用。涉及 React 组件、Next.js 页面、数据获取、包体积优化或性能改进的任务时触发。
io.github.TheWidlarzGroup/react-native-video/react-native-video
当 React Native 应用使用或选型 react-native-video 库时使用——播放/控制视频或音频、v6 的 `Video` 组件或 v7 的 `useVideoPlayer`/`VideoView` 播放器 API、source/props/事件(onLoad、onProgress、onEnd、paused、resizeMode、source、drm)、HLS/DASH、DRM(Widevine/FairPlay、`@react-native-video/drm`)、字幕/轨道、画中画、后台或锁屏音频、全屏、缓冲、离线/下载,以及 iOS/Android 原生配置;也在 v6 与 v7 之间做决策或迁移时使用。触发词包括“react-native-video”“RNV”、`Video`、`useVideoPlayer`、`VideoView` 等。
io.github.millionco/react-doctor/react-doctor
在完成功能、修复缺陷、提交 React 代码前,或用户输入 `/doctor`、要求扫描、分诊或清理 React 诊断信息时使用。覆盖 lint、无障碍、包体积与架构。包含回归检查,以及会拉取权威 playbook 的完整本地分诊流程。
io.github.remix-run/react-router/react-router
以 Framework、Data、Declarative 及不稳定 RSC 模式构建 React Router 应用。适用于配置路由、路由模块、loader、action、表单、fetcher、导航、pending UI、SSR/SPA/预渲染、中间件、URL params/search params,或 React Router 升级。
io.github.github/awesome-copilot/react-container-presentation-component
在 src/components 下按 Container/Presentation 模式创建组件:询问组件名与类型(ui 或 features),然后按本仓库的 TypeScript、Storybook 与 SCSS 约定生成文件。当用户明确索要 Container/Presentation 模式组件或运行 /react-container-presentation-component 时使用。
io.github.aidenybai/react-grab/react-grab
当用户想要一个免手动的工作回路:用 React Grab 在浏览器中抓取 UI 元素并自动将任务喂给代理,无需复制粘贴或手动交接时使用。触发语:“watch react grab”“monitor my grabs”“auto-process react grab”“watch my clipboard for grabs”。不适用于一次性粘贴单个抓取结果;这是持续开启的回路。
vbeta
io.github.TanStack/table/compose-with-tanstack-form
用 `@tanstack/react-form` 为 `@tanstack/react-table` v9 提供可编辑单元格。表格是布局原语,编辑状态由表单负责。用 `createFormHook` 注册可复用的字段组件(`TextField`、`NumberField`、`SelectField`),然后在每列的 `cell` 中返回 `<form.AppField name={`data[${row.index}].field`}>{(field) => <field.TextField />}</form.AppField>`。关键类型坑点:如果行数据里存在递归的 `subRows`,表单的行类型要用 `Omit<Row, 'subRows'>`——TanStack Form 的 `DeepKeys` 会递归并触发 TS2589。行的增删重渲染应订阅 `form.state.values.data.length`,而不是整个数组。
vbeta
io.github.TanStack/table/client-to-server
把客户端的 `@tanstack/react-table` v9 表格转为服务端模式(manual 系列开关)。将服务端分页/排序/过滤后的行作为 `data` 传入,为服务端现在负责的部分设置 `manualPagination` / `manualSorting` / `manualFiltering` / `manualGrouping` / `manualExpanding`,提供 `rowCount` 以便 `getPageCount()` 可用,并从 `tableFeatures()` 中删除对应的工厂(服务端分页就不再放 `paginatedRowModel` 槽位)。通过外部 atom(`useCreateAtom` 加 `options.atoms`)自己托管相关状态切片,让查询能以该切片为 key 并自动重新请求;或者继续使用经典的 `state` 加 `on*Change` 受控状态。
vbeta
io.github.TanStack/table/production-readiness
`@tanstack/react-table` v9 可直接上生产的优化手段:只注册你真正用到的 `features` 以缩减包体积;对 `features`、`data` 与 `columns` 做记忆化以保持引用稳定;用窄 selector 或按切片的 `useSelector(table.atoms.<slice>)` 订阅替代 `(state) => state`;并借助 `<table.Subscribe>` 与 `<Subscribe>` 把状态驱动的重渲染下沉到树的更深处,避免每次切换排序指示器都重渲染昂贵的表体。小表格不要过度优化——默认 selector 加内联渲染在性能未经测量验证前完全够用。
vbeta
io.github.TanStack/table/table-state
为 `@tanstack/react-table` v9 接入响应式。内容包括 `useTable` 及其第二个 selector 参数、通过 `table.state` / `table.store` / `table.atoms.<slice>` 读取状态、用 `table.FlexRender` 渲染、用 `<table.Subscribe>` 与独立的 `<Subscribe>` 让子树获得细粒度响应、通过 `useCreateAtom` 加 `options.atoms` 用外部 atom 自己托管切片,以及用 `createTableHook` 把共享配置打包成可复用 hook(`useAppTable`、`createAppColumnHelper`、`table.AppTable` / `table.AppHeader` / `table.AppCell` / `table.AppFooter`)。路由关键词:useTable、useSelector、useCreateAtom、atoms、react-store、table.Subscribe、FlexRender。
vbeta
io.github.TanStack/table/compose-with-tanstack-devtools
在 React 中为 TanStack Table 接入 TanStack Devtools:在应用根部挂载一次 `TanStackDevtools` 并带上 `tableDevtoolsPlugin()`,然后在每个 `useTable` 之后调用 `useTanStackTableDevtools(table)`,把该表格注册为 devtools 目标。除非从 `@tanstack/react-table-devtools/production` 导入,否则生产构建会把开发期 devtools tree-shake 成空操作。
vbeta
io.github.TanStack/table/migrate-v8-to-v9
`@tanstack/react-table` v8 到 v9 的机械式破坏性变更迁移。凭肌肉记忆照写的每一个 v8 风格选项、类型或方法,下文都列出了 v9 对应写法:`useReactTable` 改为 `useTable`;根级 `get*RowModel` 选项改为写在 `tableFeatures({...})` 里的行模型工厂,并与各自的 *Fns registry 并列;`createColumnHelper<TData>` 改为 `createColumnHelper<typeof features, TData>`;`table.getState()` 改为 `table.state` / `table.store.state` / `table.atoms.X.get()`;`sortingFn` 改为 `sortFn`;`enablePinning` 拆分;下划线前缀 API 去掉前缀;`ColumnSizing` 拆为 `columnSizingFeature` 与 `columnResizingFeature`。若需渐进迁移,`@tanstack/react-table/legacy` 的 `useLegacyTable` 可在 v9 引擎上接受 v8 API——但它已被弃用、包体积更大,且没有 `table.Subscribe`。长期来看,每个表格都要从它迁走。
vbeta
io.github.TanStack/table/getting-started
`@tanstack/react-table` v9 从零到一搭建首个表格的完整路径:安装 React adapter,用 `tableFeatures()` 声明 `features`(行模型工厂与 *Fns registry 和 feature 开关一起挂在 features 对象上),用同时带 `TFeatures` 与 `TData` 泛型的 column helper 创建列,实例化 `useTable`,并用 `<table.FlexRender>` 渲染。新用户应从这里入手,而不是 `useLegacyTable`。
vbeta
io.github.TanStack/table/compose-with-tanstack-virtual
`@tanstack/react-table` v9 本身不包含虚拟化,需要与 `@tanstack/react-virtual` 搭配。标准行虚拟化模式:从 `table.getRowModel().rows` 取行数组,把 `rows.length` 传给位于尽可能深组件(`TableBody`,而不是 `App`)中的 `useVirtualizer({ count, estimateSize, getScrollElement, ... })`,用 `rowVirtualizer.getVirtualItems()` 代替 `rows.map` 迭代,用 `transform: translateY(virtualRow.start)` 对每行做绝对定位,并把 `<tbody>` 渲染为具有固定总高度的 CSS grid。列虚拟化使用 `horizontal: true` 加上左右占位单元格。另有一个实验性的 ref 变更写法可跳过 React 协调、再带来约 10% 的性能收益,但标准模式仍是默认选择。
vbeta
io.github.TanStack/table/compose-with-tanstack-store
`@tanstack/react-table` v9 构建在 TanStack Store 之上。每个状态切片(sorting、pagination、rowSelection、columnFilters 等)都是独立的 atom。表格暴露三个读取入口——`table.atoms.<slice>`(按切片的只读)、`table.store`(扁平只读视图)、`table.state`(来自 `useTable` 的 selector 输出)——以及两条写入路径——内部 `table.baseAtoms.<slice>`,或在你选择自己托管该切片时使用你的 `options.atoms[slice]`。用 `@tanstack/react-store` 的 `useCreateAtom` 保证稳定标识,用 `useSelector` 做细粒度读取,并把 atom 通过 `options.atoms` 传入,让表格直接写入——无需 `on*Change` 处理函数。
vbeta
io.github.TanStack/table/compose-with-tanstack-query
`@tanstack/react-table` v9 与 `@tanstack/react-query` 的服务端与异步数据流。规范写法:用 `useCreateAtom<PaginationState>` 创建外部分页 atom 并通过 `options.atoms` 传入(而不是 `state` 加 `on*Change`),把分页对象纳入 `queryKey`,设置 `manualPagination: true`,用 `placeholderData: keepPreviousData` 避免闪现 0 行,并用 `defaultData = useMemo(() => [], [])` 让 `data` 引用在多次请求间保持稳定。`rowCount` 取自接口响应,这样 `getPageCount()` 才能正确工作。
io.github.affaan-m/ECC/react-patterns
React 18/19 模式:hooks 纪律、服务端/客户端组件边界、Suspense + 错误边界、表单 action、数据获取、状态管理决策树,以及无障碍优先的组合方式。在编写或审查 React 组件时使用。
io.github.affaan-m/ECC/react-performance
React 与 Next.js 性能优化模式,改编自 Vercel 工程团队的 React Best Practices(https://github.com/vercel-labs/agent-skills)。将 70+ 条规则按 8 个优先级分类组织——瀑布流、包体积、服务端、客户端获取、重渲染、渲染、JS 微性能、进阶技巧。在为性能而编写、审查或重构 React/Next.js 代码时使用。
io.github.affaan-m/ECC/react-testing
React 组件测试:React Testing Library、Vitest/Jest、用于网络 Mock 的 MSW、axe 可访问性断言,以及组件测试与 Playwright/Cypress 端到端测试的取舍边界。在编写或修复 React 组件、hooks 或页面测试时使用。
io.github.petyosi/react-virtuoso/reactive-engine
使用 @virtuoso.dev/reactive-engine-* 包族管理应用状态。在以下情况使用本技能:(1) 用 Cell、Stream、Trigger 或 Resource 节点定义响应式状态;(2) 通过 EngineProvider、useCellValue、useCellValues 或 usePublisher 连接 React 组件;(3) 用 reactive-engine-query 中的 Query 与 Mutation 获取数据;(4) 用 reactive-engine-router 的 Route、Layout 与 Guard 做路由;(5) 用 linkCellToStorage 持久化 Cell;(6) 基于该引擎架构组件或库;(7) 任何涉及 Engine、pub、sub、getValue、combine、pipe、link、changeWith、e 命名空间,或报错“No active engine found”的任务。
io.github.petyosi/react-virtuoso/react-virtuoso
使用 react-virtuoso 构建虚拟化的列表、网格与表格。在以下情况使用本技能:(1) 渲染大型或无限列表;(2) 构建带粘性表头的分组列表;(3) 虚拟化 HTML 表格;(4) 在响应式网格中排布等高项;(5) 构建跟随底部新条目的信息流或日志;(6) 诊断虚拟化症状,如滚动跳动、列表无法滚到底部、条目重叠、空白条目或“zero-sized element”错误;(7) 任何涉及 Virtuoso、GroupedVirtuoso、VirtuosoGrid、TableVirtuoso、VirtuosoHandle、itemContent、followOutput 或 firstItemIndex 的任务。
io.github.millionco/react-doctor/react-doctor
在完成功能、修复缺陷、提交 React 代码前,或用户输入 `/doctor`、要求扫描、分诊或清理 React 诊断信息时使用。覆盖 lint、无障碍、包体积与架构。包含回归检查,以及会拉取权威 playbook 的完整本地分诊流程。