Files
zhaoguiyang.site/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md
zguiyang bbb2f41591 feat: add new OpenSpec skills for change management and onboarding
- Created `openspec-ff-change` skill for fast-forward artifact creation.
- Introduced `openspec-new-change` skill for structured change creation.
- Developed `openspec-onboard` skill for guided onboarding through OpenSpec workflow.
- Added `openspec-sync-specs` skill for syncing delta specs to main specs.
- Implemented `openspec-verify-change` skill for verifying implementation against change artifacts.
- Updated `.gitignore` to exclude OpenSpec generated files.
- Added `skills-lock.json` to manage skill dependencies.
2026-03-13 13:18:03 +08:00

2.5 KiB

title, impact, impactDescription, tags
title impact impactDescription tags
Use React DOM Resource Hints HIGH reduces load time for critical resources rendering, preload, preconnect, prefetch, resource-hints

Use React DOM Resource Hints

Impact: HIGH (reduces load time for critical resources)

React DOM provides APIs to hint the browser about resources it will need. These are especially useful in server components to start loading resources before the client even receives the HTML.

  • prefetchDNS(href): Resolve DNS for a domain you expect to connect to
  • preconnect(href): Establish connection (DNS + TCP + TLS) to a server
  • preload(href, options): Fetch a resource (stylesheet, font, script, image) you'll use soon
  • preloadModule(href): Fetch an ES module you'll use soon
  • preinit(href, options): Fetch and evaluate a stylesheet or script
  • preinitModule(href): Fetch and evaluate an ES module

Example (preconnect to third-party APIs):

import { preconnect, prefetchDNS } from 'react-dom'

export default function App() {
  prefetchDNS('https://analytics.example.com')
  preconnect('https://api.example.com')

  return <main>{/* content */}</main>
}

Example (preload critical fonts and styles):

import { preload, preinit } from 'react-dom'

export default function RootLayout({ children }) {
  // Preload font file
  preload('/fonts/inter.woff2', { as: 'font', type: 'font/woff2', crossOrigin: 'anonymous' })

  // Fetch and apply critical stylesheet immediately
  preinit('/styles/critical.css', { as: 'style' })

  return (
    <html>
      <body>{children}</body>
    </html>
  )
}

Example (preload modules for code-split routes):

import { preloadModule, preinitModule } from 'react-dom'

function Navigation() {
  const preloadDashboard = () => {
    preloadModule('/dashboard.js', { as: 'script' })
  }

  return (
    <nav>
      <a href="/dashboard" onMouseEnter={preloadDashboard}>
        Dashboard
      </a>
    </nav>
  )
}

When to use each:

API Use case
prefetchDNS Third-party domains you'll connect to later
preconnect APIs or CDNs you'll fetch from immediately
preload Critical resources needed for current page
preloadModule JS modules for likely next navigation
preinit Stylesheets/scripts that must execute early
preinitModule ES modules that must execute early

Reference: React DOM Resource Preloading APIs