{"id":16632764,"url":"https://github.com/jerp86/useimperativehandle","last_synced_at":"2026-05-08T05:46:55.072Z","repository":{"id":100651813,"uuid":"539121348","full_name":"jerp86/useimperativehandle","owner":"jerp86","description":"Example of using useImperativeHandle in React, learned with Luis Filipe Pedroso @LuisFilipePedroso","archived":false,"fork":false,"pushed_at":"2023-10-18T08:22:31.000Z","size":463,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-18T08:16:29.767Z","etag":null,"topics":["chakra-ui","chakra-ui-react","chakraui","react","reactjs","typescript","useimperativehandle","vite","vitejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jerp86.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-20T17:50:36.000Z","updated_at":"2022-09-20T19:40:39.000Z","dependencies_parsed_at":"2024-11-17T12:43:19.766Z","dependency_job_id":"83c05386-d177-4ae7-bb8f-d7b460dae521","html_url":"https://github.com/jerp86/useimperativehandle","commit_stats":{"total_commits":21,"total_committers":2,"mean_commits":10.5,"dds":0.1428571428571429,"last_synced_commit":"de7af1bf41888b8656d89ebe370cef5f3a38f660"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fuseimperativehandle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fuseimperativehandle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fuseimperativehandle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fuseimperativehandle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerp86","download_url":"https://codeload.github.com/jerp86/useimperativehandle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243119690,"owners_count":20239319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chakra-ui","chakra-ui-react","chakraui","react","reactjs","typescript","useimperativehandle","vite","vitejs"],"created_at":"2024-10-12T05:10:15.505Z","updated_at":"2025-12-25T05:32:56.018Z","avatar_url":"https://github.com/jerp86.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003eExample of using useImperativeHandle in React\u003c/h2\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/jerp86/useimperativehandle/main/public/vite.svg\" width=\"100\" heigth=\"100\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\n    \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-%23F8952D\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"#information_source-sobre\"\u003eSobre\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n  \u003ca href=\"#interrobang-motivo\"\u003eMotivo\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n  \u003ca href=\"#rocket-tecnologias-utilizadas\"\u003eTecnologias\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n  \u003ca href=\"#link-como-contribuir\"\u003eComo Contribuir\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n  \u003ca href=\"#licença\"\u003eLicença\u003c/a\u003e\n\u003c/h3\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/54115624/191345586-76a4376b-64fa-4cf5-a020-28bcdfed4ef8.jpeg\" width=\"600\" /\u003e\n\u003c/div\u003e\n\n## :information_source: Sobre\n\n[Referências de Forma Avançada no React](https://youtu.be/7crxexAIz3w) - por [Luis Filipe Pedroso](https://github.com/LuisFilipePedroso).\n\nhttps://youtu.be/7crxexAIz3w\n\n## :interrobang: Motivo\n\nO useImperativeHandle é um dos Hooks que transformou o React, isso porque com ele nós conseguimos resolver um problema que tínhamos no passado ao criar apps com React, que era passar dados do filho para o pai.\n\nDurante muito tempo nós resolvíamos esse problema de uma forma não tão interessante utilizando o Redux. Isso fazia com que o App tinha diversos efeitos colaterais e renderizações desnecessárias, prejudicando a performance do App.\n\nMas agora, nós conseguimos resolver esse problema sem abrir mão da performance utilizando o useImperativeHandle em conjunto com as Refs do React.\n\n## :rocket: Tecnologias Utilizadas\n\nO projeto foi desenvolvido utilizando as seguintes tecnologias\n\n- [React](https://reactjs.org/)\n- [@chakra-ui/react](https://chakra-ui.com/)\n- [@emotion/react](https://emotion.sh/docs/introduction)\n- [framer-motion](https://www.framer.com/motion/)\n- [vite](https://vitejs.dev/)\n\n## :link: Como contribuir\n\n- Faça um Fork do repositório\n- Clone o seu repositório\n- Crie uma branch com a sua feature\n- Faça um commit com suas mudanças\n- 'Push' a sua branch\n- Ir em Pull Requests do projeto original e criar uma pull request com o seu commit\n\n## Licença\n\nEsse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n---\n\n\u003ch4 align=\"center\"\u003e\n  Feito com ❤️ por Jerp86 👋️\n  \u003cbr /\u003e\n  \u003ca href=\"mailto:jerp.dev@gmail.com\"\u003eEntre em contato!\u003c/a\u003e\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.linkedin.com/in/jerp/\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/badge/LinkedIn-jerp-0e76a8?style=flat\u0026logoColor=white\u0026logo=linkedin\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.instagram.com/jerpbtu/\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/badge/Instagram-@jerpbtu-833AB4?style=flat\u0026logoColor=white\u0026logo=instagram\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/jerpbtu\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/twitter/follow/jerpbtu?style=flat\u0026logoColor=white\u0026logo=Twitter\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerp86%2Fuseimperativehandle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerp86%2Fuseimperativehandle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerp86%2Fuseimperativehandle/lists"}