mcpField
R
react19-concurrent-patterns

react19-concurrent-patterns

github.com/github开发40.5k1.1k 次安装1 天前更新
代码仓库

关于 react19-concurrent-patterns

用于 React 19 迁移的参考技能,帮助保留 React 18 并发模式,并在迁移后采用 React 19 新 API,适合审查迁移改动及规划后续整理。

主要功能

  1. 01保留 `useTransition` 和 `useDeferredValue` 模式
  2. 02维持 Suspense 与 lazy 代码分割
  3. 03介绍供后续采用的 React 19 新 API
  4. 04检查迁移改动是否影响并发模式

适用场景

  1. 01审查 React 19 迁移差异
  2. 02保护 React 18 代码库中的并发模式
  3. 03规划迁移后的 API 整理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/github/awesome-copilot --skill react19-concurrent-patterns

安装后在 Claude Code 中输入/react19-concurrent-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
react19-actions.md
react19-suspense.md
react19-use.md

详细介绍

React 19 并发模式

React 19 引入了新的 API,与迁移工作相辅相成。本技能涵盖两个方面:

  1. 保留 迁移过程中不得破坏的现有 React 18 并发模式
  2. 采用 在迁移稳定后值得引入的新 React 19 API

第 1 部分 保留:迁移后必须继续存在的 React 18 并发模式

这些模式存在于 React 18 代码库中,不得在迁移过程中被意外移除或破坏:

createRoot 已由 R18 orchestra 完成迁移

如果 R18 orchestra 已经运行,则 ReactDOM.render → createRoot 已完成。请验证其是否正确:

// CORRECT React 19 root (same as React 18):
import { createRoot } from 'react-dom/client';
const root = createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);
useTransition 无需迁移

React 18 中的 useTransition 在 React 19 中行为完全相同。迁移期间不要改动这些模式:

// React 18 useTransition  unchanged in React 19:
const [isPending, startTransition] = useTransition();

function handleClick() {
  startTransition(() => {
    setFilteredResults(computeExpensiveFilter(input));
  });
}
useDeferredValue 无需迁移
// React 18 useDeferredValue  unchanged in React 19:
const deferredQuery = useDeferredValue(query);
用于代码分割的 Suspense 无需迁移
// React 18 Suspense with lazy  unchanged in React 19:
const LazyComponent = React.lazy(() => import('./LazyComponent'));

function App() {
  return (
    <Suspense fallback={<Spinner />}>
      <LazyComponent />
    </Suspense>
  );
}

第 2 部分 React 19 新 API

这些 API 值得在迁移后的清理冲刺中采用。不要在迁移过程中引入它们 先稳定下来。

关于每个新 API 的完整模式,请阅读:

  • references/react19-use.md 用于 promise 和 context 的 use() hook
  • references/react19-actions.md Actions、useActionState、useFormStatus、useOptimistic
  • references/react19-suspense.md 用于数据获取的 Suspense(新模式)

迁移安全规则

在 React 19 迁移期间,这些并发模式必须完全保持原样:

# Verify nothing touched these during migration:
grep -rn "useTransition\|useDeferredValue\|Suspense\|startTransition" \
  src/ --include="*.js" --include="*.jsx" | grep -v "\.test\."

如果迁移工具改动过其中任何文件,请审查这些改动 迁移只应修改 React API 表面(forwardRef、defaultProps 等),绝不能改动并发模式逻辑。

评论

支持 Markdown