{"ecosystem":"npm","package":"react","from_version":null,"to_version":null,"changes":[{"from_version":"18","to_version":"19","change_type":"api","description":"useFormState renamed to useActionState and moved from react-dom to react.","migration_hint":"`import { useActionState } from 'react'` (was `useFormState` from react-dom). Signature is identical."},{"from_version":"18","to_version":"19","change_type":"api","description":"ref is now a regular prop on function components; forwardRef no longer required for most cases.","migration_hint":"Remove forwardRef wrappers: `const Foo = ({ ref, ...props }) => ...`. Keep forwardRef only if you export to an external lib that still expects it."},{"from_version":"18","to_version":"19","change_type":"removal","description":"propTypes and contextTypes on class components silently ignored in production.","migration_hint":"Migrate validation to TypeScript. Remove propTypes usage; keep only if you target React 18 simultaneously via a lib."},{"from_version":"18","to_version":"19","change_type":"removal","description":"defaultProps on function components removed. Use JavaScript default parameters instead.","migration_hint":"Replace `Foo.defaultProps = { size: 'md' }` with `function Foo({ size = 'md' })`."},{"from_version":"18","to_version":"19","change_type":"removal","description":"String refs removed completely (were deprecated since v16).","migration_hint":"Use callback refs or useRef. `ref=\"myRef\"` is no longer supported."}],"total":5,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"miss"}