react18-batching-patterns

โดย github

ให้รูปแบบที่แม่นยำสำหรับการวินิจฉัยและแก้ไขปัญหาการรวมกลุ่มอัตโนมัติที่ถดถอยในคอมโพเนนต์คลาสของ React 18 ใช้ทักษะนี้เมื่อใดก็ตามที่คอมโพเนนต์คลาสมี…

npx skills add https://github.com/github/awesome-copilot --skill react18-batching-patterns

React 18 Automatic Batching Patterns

Reference for diagnosing and fixing the most dangerous silent breaking change in React 18 for class-component codebases.

The Core Change

Location of setStateReact 17React 18
React event handlerBatchedBatched (same)
setTimeoutImmediate re-renderBatched
Promise .then() / .catch()Immediate re-renderBatched
async/awaitImmediate re-renderBatched
Native addEventListener callbackImmediate re-renderBatched

Batched means: all setState calls within that execution context flush together in a single re-render at the end. No intermediate renders occur.

Quick Diagnosis

Read every async class method. Ask: does any code after an await read this.state to make a decision?

Code reads this.state after await?
  YES → Category A (silent state-read bug)
  NO, but intermediate render must be visible to user?
    YES → Category C (flushSync needed)
    NO → Category B (refactor, no flushSync)

For the full pattern for each category, read:

  • references/batching-categories.md - Category A, B, C with full before/after code
  • references/flushSync-guide.md - when to use flushSync, when NOT to, import syntax

The flushSync Rule

Use flushSync sparingly. It forces a synchronous re-render, bypassing React 18's concurrent scheduler. Overusing it negates the performance benefits of React 18.

Only use flushSync when:

  • The user must see an intermediate UI state before an async operation begins
  • A spinner/loading state must render before a fetch starts
  • Sequential UI steps have distinct visible states (progress wizard, multi-step flow)

In most cases, the fix is a refactor - restructuring the code to not read this.state after await. Read references/batching-categories.md for the correct approach per category.

Skills เพิ่มเติมจาก github

debugging-workflows
github
คู่มือการดีบัก GitHub Agentic Workflows - การวิเคราะห์ล็อก การตรวจสอบการรัน และการแก้ไขปัญหา
go-codemod
github
ใช้และทดสอบการปรับเปลี่ยนโค้ด Go สำหรับคำสั่ง gh aw fix
acreadiness-policy
github
ช่วยผู้ใช้เลือก เขียน หรือใช้ AgentRC policy นโยบายปรับแต่งการให้คะแนนความพร้อมโดยปิดการตรวจสอบที่ไม่เกี่ยวข้อง เปลี่ยนระดับผลกระทบ/ระดับ การตั้งค่า…
ai-ready
github
ทำให้ repo ใดๆ พร้อมสำหรับ AI — วิเคราะห์โค้ดเบสของคุณและสร้าง AGENTS.md, copilot-instructions.md, ขั้นตอนการทำงาน CI, เทมเพลต issue และอื่นๆ ขุดรีวิว PR ของคุณ…
create-oo-component-documentation
github
สร้างเอกสารประกอบที่ครอบคลุมและเป็นมาตรฐานสำหรับคอมโพเนนต์เชิงวัตถุตามแนวทางปฏิบัติที่ดีที่สุดในอุตสาหกรรมและมาตรฐานเอกสารทางสถาปัตยกรรม
dependabot
github
Dependabot เป็นเครื่องมือจัดการ dependencies ในตัวของ GitHub ที่มีความสามารถหลักสามประการ:
doublecheck
github
ไปป์ไลน์การตรวจสอบสามชั้นสำหรับผลลัพธ์ของ AI แยกข้อความที่สามารถตรวจสอบได้ ค้นหาแหล่งข้อมูลที่สนับสนุนหรือขัดแย้งผ่านการค้นหาเว็บ ดำเนินการตรวจสอบเชิงโต้แย้ง…
foundry-agent-sync
github
สร้างและซิงโครไนซ์เอเจนต์ AI ที่ใช้พรอมพ์โดยตรงภายใน Azure AI Foundry ผ่าน REST API จากไฟล์ JSON ในเครื่อง ซึ่งแตกต่างจากสกิลโครงสร้างพื้นฐานที่ทำได้เพียง...