[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-964":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},964,"react-hook-form","react-hook-form\u002Freact-hook-form","📋 React Hooks for form state management and validation (Web + React Native)","https:\u002F\u002Freact-hook-form.com",null,"TypeScript",44759,2420,180,3,0,4,10,72,15,45,"MIT License",false,"master",[25,26,27,28,29,30,31,32,33],"dx","form-builder","forms","react-hooks","react-native","reactjs","typescript","ux","validation","2026-06-12 02:00:21","\u003Cdiv align=\"center\">\n        \u003Ca href=\"https:\u002F\u002Freact-hook-form.com\" title=\"React Hook Form - Simple React forms validation\">\n            \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Freact-hook-form\u002Freact-hook-form\u002Fmaster\u002Fdocs\u002Flogo.png\" alt=\"React Hook Form Logo - React hook custom hook for form validation\" \u002F>\n        \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n[![npm downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Freact-hook-form.svg?style=for-the-badge)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Freact-hook-form)\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdt\u002Freact-hook-form.svg?style=for-the-badge)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Freact-hook-form)\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Freact-hook-form?style=for-the-badge)](https:\u002F\u002Fgithub.com\u002Freact-hook-form\u002Freact-hook-form\u002Fblob\u002Fmaster\u002FLICENSE)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F754891658327359538.svg?style=for-the-badge&label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https:\u002F\u002Fdiscord.gg\u002FyYv7GZ8)\n\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Freact-hook-form.com\u002Fget-started\">Get started\u003C\u002Fa> | \n  \u003Ca href=\"https:\u002F\u002Freact-hook-form.com\u002Fdocs\">API\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Freact-hook-form.com\u002Fform-builder\">Form Builder\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Freact-hook-form.com\u002Ffaqs\">FAQs\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Freact-hook-form\u002Freact-hook-form\u002Ftree\u002Fmaster\u002Fexamples\">Examples\u003C\u002Fa>\n\u003C\u002Fp>\n\n### Features\n\n- Built with performance, UX and DX in mind\n- Embraces native HTML form [validation](https:\u002F\u002Freact-hook-form.com\u002Fget-started#Applyvalidation)\n- Out of the box integration with [UI libraries](https:\u002F\u002Fcodesandbox.io\u002Fs\u002Freact-hook-form-v7-controller-5h1q5)\n- [Small size](https:\u002F\u002Fbundlephobia.com\u002Fresult?p=react-hook-form@latest) and no [dependencies](.\u002Fpackage.json)\n- Support [Yup](https:\u002F\u002Fgithub.com\u002Fjquense\u002Fyup), [Zod](https:\u002F\u002Fgithub.com\u002Fcolinhacks\u002Fzod), [AJV](https:\u002F\u002Fgithub.com\u002Fajv-validator\u002Fajv), [Superstruct](https:\u002F\u002Fgithub.com\u002Fianstormtaylor\u002Fsuperstruct), [Joi](https:\u002F\u002Fgithub.com\u002Fhapijs\u002Fjoi) and [others](https:\u002F\u002Fgithub.com\u002Freact-hook-form\u002Fresolvers)\n\n### Install\n\n    npm install react-hook-form\n\n### Quickstart\n\n```jsx\nimport { useForm } from 'react-hook-form';\n\nfunction App() {\n  const {\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm();\n\n  return (\n    \u003Cform onSubmit={handleSubmit((data) => console.log(data))}>\n      \u003Cinput {...register('firstName')} \u002F>\n      \u003Cinput {...register('lastName', { required: true })} \u002F>\n      {errors.lastName && \u003Cp>Last name is required.\u003C\u002Fp>}\n      \u003Cinput {...register('age', { pattern: \u002F\\d+\u002F })} \u002F>\n      {errors.age && \u003Cp>Please enter number for age.\u003C\u002Fp>}\n      \u003Cinput type=\"submit\" \u002F>\n    \u003C\u002Fform>\n  );\n}\n```\n\n### Sponsors\n\nWe’re incredibly grateful to these kind and generous sponsors for their support!\n\n## Major Sponsors\n\n| Follower24 | BuyFans |\n|---|---|\n| \u003Ca href=\"https:\u002F\u002Fwww.follower24.de\u002F\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Ffollower24\u002F00297f8\u002Favatar\u002F256.png?height=256\" width=\"120\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fbuy.fans\u002F\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fbuy-instagram-followers-buyfans\u002F2b97c05\u002Flogo\u002F256.png?height=256\" width=\"120\"\u002F>\u003C\u002Fa> |\n\n## Supporting Sponsors\n\n| Thanks.dev | Workleap | Kinsta | Sent | Niche |\n|---|---|---|---|---|\n| \u003Ca href=\"https:\u002F\u002Fthanks.dev\u002F\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72539280?s=200&v=4\" width=\"60\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fworkleap.com\u002F\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fworkleap\u002Fdb82f38\u002Flogo\u002F256.png?height=256\" width=\"60\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fkinsta.com\u002F\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fkinsta\u002F55912d7\u002Flogo\u002F256.png?height=256\" width=\"60\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.sent.dm\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F153308555?s=200&v=4\" width=\"60\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fniche.com\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8988784?s=200&v=4\" width=\"60\"\u002F>\u003C\u002Fa> |\n| Toss | Principal | Hygraph |  |  |\n| \u003Ca href=\"https:\u002F\u002Ftoss.im\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Ftoss\u002F3ed69b3\u002Flogo\u002F256.png\" width=\"60\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fprincipal.com\u002Fabout-us\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fprincipal\u002F431e690\u002Flogo\u002F256.png?height=256\" width=\"60\"\u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fhygraph.com\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F31031438\" width=\"60\"\u002F>\u003C\u002Fa> |  |  |\n\n### Past Sponsors\n\nThank you to our previous sponsors for your generous support!\n\n| \u003Ca href=\"https:\u002F\u002Fwww.beekai.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.beekai.com\u002Fmarketing\u002Flogo\u002Flogo.svg\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Froute4me.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Froute4me\u002F71fb6fa\u002Favatar\u002F256.png?height=256\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.sgkb.ch\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fst-galler-kantonalbank-ag\u002Fbfdd17f\u002Flogo\u002F256.png?height=256\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.sanity.io\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fsanity_io\u002F558f87f\u002Flogo\u002F256.png?height=256\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Ftwicsy.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fbuy-instagram-followers-twicsy\u002Fb4c5d7f\u002Flogo\u002F256.png?height=256\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.leniolabs.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.leniolabs.com\u002Fimages\u002Fleniolabs-isologo-example.jpg\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Funderbelly.is\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Funderbelly\u002F989a4a6\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Ffeathery.io\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Ffeathery1\u002Fc29b0a1\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fgetform.io\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fgetformio2\u002F3c978c8\u002Favatar\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fmarmelab.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fmarmelab\u002Fd7fd82f\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> |\n|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n| \u003Ca href=\"https:\u002F\u002Fformcarry.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fformcarry\u002Fa40a4ea\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Ffabform.io\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Ffabform\u002F2834037\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.thinkmill.com.au\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fthinkmill\u002F28910ec\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fkwork.studio\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fknowledge-work\u002Ff91b72d\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Ffiberplane.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F61152955?s=200&v=4\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fresources.jetbrains.com\u002Fstorage\u002Fproducts\u002Fcompany\u002Fbrand\u002Flogos\u002Fjb_beam.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.mirakl.com\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fmirakl\u002F0b191f0\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwantedlyinc.com\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fwantedly\u002Fd94e44e\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.casinoreviews.net\u002F\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fcasinoreviews\u002Ff0877d1\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fkanamekey.com\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimages.opencollective.com\u002Fkaname\u002Fd15fd98\u002Flogo\u002F256.png\" width=\"24\" height=\"24\" \u002F>\u003C\u002Fa> |\n\n### Backers\n\nThanks go to all our backers! [[Become a backer](https:\u002F\u002Fopencollective.com\u002Freact-hook-form#backer)].\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Freact-hook-form#backers\">\n    \u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Freact-hook-form\u002Fbackers.svg?width=820\" \u002F>\n\u003C\u002Fa>\n\n### Contributors\n\nThanks go to these wonderful people! [[Become a contributor](CONTRIBUTING.md)].\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Freact-hook-form\u002Freact-hook-form\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Freact-hook-form\u002Fcontributors.svg?width=820\" \u002F>\n\u003C\u002Fa>\n\n\u003Cbr \u002F>\n\u003Cbr \u002F>\n\n\u003Ca href=\"https:\u002F\u002Fui.dev\u002Fbytes\u002F?r=bill\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Freact-hook-form\u002Freact-hook-form\u002Fmaster\u002Fdocs\u002Fads-1.jpeg\" \u002F>\n\u003C\u002Fa>\n\n\u003Cbr \u002F>\n\u003Cbr \u002F>\n\n\u003Cp align=\"center\">Documentation website supported and backed by \u003Ca href=\"https:\u002F\u002Fvercel.com\">\u003Cb>Vercel\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fp>\n","React Hook Form 是一个用于表单状态管理和验证的React Hooks库，支持Web和React Native应用。其核心功能包括高性能、良好的用户体验与开发者体验设计，以及对原生HTML表单验证的支持。该库体积小巧且无依赖项，可直接与多种UI库集成，并支持Yup、Zod等多种验证方案。特别适合需要高效处理复杂表单逻辑的应用场景，如用户注册页面、在线调查问卷等，帮助开发者简化表单开发流程的同时提升应用性能。",2,"2026-06-11 02:40:35","top_all"]