{"_id":"@aimwhy/whyreact","_rev":"4-0ac4cac635b948964e353e61a23341a2","name":"@aimwhy/whyreact","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@aimwhy/whyreact","version":"1.0.0","description":"23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.","module":"scr/index.js","main":"dist/index.js","scripts":{"build":"rm -rf dist && rollup  --bundleConfigAsCjs --config build.config.js","lint":"eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./src","demo":"vite serve demo/ --config demo/vite.config.js --force"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.22.10","@babel/plugin-transform-react-jsx":"^7.22.5","@babel/preset-env":"^7.22.10","@commitlint/cli":"^17.7.1","@commitlint/config-conventional":"^17.7.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-replace":"^5.0.2","@typescript-eslint/eslint-plugin":"^6.3.0","@typescript-eslint/parser":"^6.3.0","@vitejs/plugin-react":"^4.0.4","commitlint":"^17.7.1","eslint":"^8.46.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","husky":"^8.0.3","prettier":"^3.0.1","rollup":"^3.28.0","typescript":"^5.1.6","vite":"^4.4.9"},"gitHead":"f08a484cd9f2a64ded46305361067a42b24f13d7","_id":"@aimwhy/whyreact@1.0.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-mIU+oBnRSsJddtSSI9Rra3HwnRvBEVovYexbEdkVPy131ftbdcn5/elRdIJcWcK/7YeV2QsWGEDRCkuX4bQeeg==","shasum":"20e2502b81aa973e6811f49c7f9cd48150fdffd7","tarball":"https://registry.npmjs.org/@aimwhy/whyreact/-/whyreact-1.0.0.tgz","fileCount":13,"unpackedSize":41715,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFk4mHLJMAvzxu/dUxapguuGczULiUmtuSj8cA1mdkw3AiEAiXYWIveK+iTPkBvI9oPt6at6Dn+olFWslI4hS2qzYzk="}]},"_npmUser":{"name":"aimwhy","email":"aimwhy@qq.com"},"directories":{},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/whyreact_1.0.0_1691711173914_0.6728474180659261"},"_hasShrinkwrap":false},"1.0.1":{"name":"@aimwhy/whyreact","version":"1.0.1","description":"23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.","module":"scr/index.js","main":"dist/index.js","scripts":{"build":"rm -rf dist && rollup  --bundleConfigAsCjs --config build.config.js","lint":"eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./src","demo":"vite serve demo/ --config demo/vite.config.js --force"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.22.10","@babel/plugin-transform-react-jsx":"^7.22.5","@babel/preset-env":"^7.22.10","@commitlint/cli":"^17.7.1","@commitlint/config-conventional":"^17.7.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-replace":"^5.0.2","@typescript-eslint/eslint-plugin":"^6.3.0","@typescript-eslint/parser":"^6.3.0","@vitejs/plugin-react":"^4.0.4","commitlint":"^17.7.1","eslint":"^8.46.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","husky":"^8.0.3","prettier":"^3.0.1","rollup":"^3.28.0","typescript":"^5.1.6","vite":"^4.4.9"},"gitHead":"d218c5a86d5e0b246278d9a02841e016680ac00e","_id":"@aimwhy/whyreact@1.0.1","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-kcxd6V/jFmqQ4Iakin/1tswzVSDq8VOzvbbMrlQ7ROoH7VyqPc0flkL/c0hy+w8/Lp/xxPZyHoyZxssbWug/bw==","shasum":"28d01b8d7a8c12d7b40d86ebbe356becc3f71bac","tarball":"https://registry.npmjs.org/@aimwhy/whyreact/-/whyreact-1.0.1.tgz","fileCount":13,"unpackedSize":41440,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfqPA9yGkwb5kYHEnHSbITxIfVpRIHlJdb27zrcob6YQIhAM7d4YJlslKMRv7ZninJmDzYal0K4DS5j/sOG3dKvcTM"}]},"_npmUser":{"name":"aimwhy","email":"aimwhy@qq.com"},"directories":{},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/whyreact_1.0.1_1691713527511_0.5885404467581665"},"_hasShrinkwrap":false},"1.0.2":{"name":"@aimwhy/whyreact","version":"1.0.2","description":"23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.","module":"scr/index.js","main":"dist/index.js","scripts":{"build":"rm -rf dist && rollup  --bundleConfigAsCjs --config build.config.js","lint":"eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./src","demo":"vite serve demo/ --config demo/vite.config.js --force"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.22.10","@babel/plugin-transform-react-jsx":"^7.22.5","@babel/preset-env":"^7.22.10","@commitlint/cli":"^17.7.1","@commitlint/config-conventional":"^17.7.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-replace":"^5.0.2","@typescript-eslint/eslint-plugin":"^6.3.0","@typescript-eslint/parser":"^6.3.0","@vitejs/plugin-react":"^4.0.4","commitlint":"^17.7.1","eslint":"^8.46.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","husky":"^8.0.3","prettier":"^3.0.1","rollup":"^3.28.0","typescript":"^5.1.6","vite":"^4.4.9"},"gitHead":"6dad8e709efcc469031467e3d775547b40bc4e52","_id":"@aimwhy/whyreact@1.0.2","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-CE0iRBFZpPQBCvs+l2pHnKi0ueG2he8u8mJ6iNOr9qpYLpBP67fhJvGSGUaUdyroVvWQP4ejdxAbyXVqcMHB+A==","shasum":"3e97f2e780beeae581139758b6ae5daacc261ede","tarball":"https://registry.npmjs.org/@aimwhy/whyreact/-/whyreact-1.0.2.tgz","fileCount":13,"unpackedSize":40199,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICVjzOWeMF0vFsD0IAdJlYeRAoR+LrIy3/mtfhFeR5FHAiAqxLRlzAdgJVEvTPUkT/O+0O9w2zDo/PDwF2jcq5+K6Q=="}]},"_npmUser":{"name":"aimwhy","email":"aimwhy@qq.com"},"directories":{},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/whyreact_1.0.2_1691733481284_0.43935422931771817"},"_hasShrinkwrap":false},"1.0.3":{"name":"@aimwhy/whyreact","version":"1.0.3","description":"23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.","module":"scr/index.js","main":"dist/index.js","scripts":{"build":"rm -rf dist && rollup  --bundleConfigAsCjs --config build.config.js","lint":"eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./src","demo":"vite serve demo/ --config demo/vite.config.js --force"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.22.10","@babel/plugin-transform-react-jsx":"^7.22.5","@babel/preset-env":"^7.22.10","@commitlint/cli":"^17.7.1","@commitlint/config-conventional":"^17.7.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-replace":"^5.0.2","@typescript-eslint/eslint-plugin":"^6.3.0","@typescript-eslint/parser":"^6.3.0","@vitejs/plugin-react":"^4.0.4","commitlint":"^17.7.1","eslint":"^8.46.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","husky":"^8.0.3","prettier":"^3.0.1","rollup":"^3.28.0","typescript":"^5.1.6","vite":"^4.4.9"},"gitHead":"4ee0e4da58937b9f55a319f2881a7655eda38ada","_id":"@aimwhy/whyreact@1.0.3","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-3mL1gg7CsDbJwsRzCKHX3WzzO6Zthab4sF9Gbh1/YV+JGca4HLrCA0R4DOQoZ6/r5AlaM0rtJ5kNfleNQ28YYw==","shasum":"bdedd831aebee302408adfaad868df65e4b8b95a","tarball":"https://registry.npmjs.org/@aimwhy/whyreact/-/whyreact-1.0.3.tgz","fileCount":13,"unpackedSize":53666,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvyVgtpxuq5MzEiKo14a+j/++X1++9fae0Pt9umpbJ4wIgLIlJu2He0FLCwatK3QBQw4zXwBWxMLfQfJUYneeQ5J0="}]},"_npmUser":{"name":"aimwhy","email":"aimwhy@qq.com"},"directories":{},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/whyreact_1.0.3_1692194131262_0.22241728891841506"},"_hasShrinkwrap":false},"1.0.4":{"name":"@aimwhy/whyreact","version":"1.0.4","description":"23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.","module":"scr/index.js","main":"dist/index.js","scripts":{"build":"rm -rf dist && rollup  --bundleConfigAsCjs --config build.config.js","lint":"eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./src","demo":"vite serve demo/ --config demo/vite.config.js --force"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.22.10","@babel/plugin-transform-react-jsx":"^7.22.5","@babel/preset-env":"^7.22.10","@commitlint/cli":"^17.7.1","@commitlint/config-conventional":"^17.7.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-replace":"^5.0.2","@typescript-eslint/eslint-plugin":"^6.3.0","@typescript-eslint/parser":"^6.3.0","@vitejs/plugin-react":"^4.0.4","commitlint":"^17.7.1","eslint":"^8.46.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","husky":"^8.0.3","prettier":"^3.0.1","rollup":"^3.28.0","typescript":"^5.1.6","vite":"^4.4.9"},"gitHead":"4ee0e4da58937b9f55a319f2881a7655eda38ada","_id":"@aimwhy/whyreact@1.0.4","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-NwFE+lqca/zZ3V6gRM0UCTsV9JJAxFYiLvaAG3zDKhc3H0qLIHJr/TR77nNF7n9NqXU1WmfMcoDWmtaN56eduQ==","shasum":"a4bd66bd319a9f636f6febe08f0513ccf4fe2a13","tarball":"https://registry.npmjs.org/@aimwhy/whyreact/-/whyreact-1.0.4.tgz","fileCount":13,"unpackedSize":53650,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzCv4+kqO079ohC5+AArxni85E47WrbJr2b5yEcTktwAIhAO1KvHvLMxV8a4CmRl+gUoU3C0J5CE9dVn9q8kk+ZeMp"}]},"_npmUser":{"name":"aimwhy","email":"aimwhy@qq.com"},"directories":{},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/whyreact_1.0.4_1692195795573_0.3079357086158949"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-10T23:46:13.820Z","1.0.0":"2023-08-10T23:46:14.208Z","modified":"2023-08-16T14:23:16.003Z","1.0.1":"2023-08-11T00:25:27.698Z","1.0.2":"2023-08-11T05:58:01.443Z","1.0.3":"2023-08-16T13:55:31.438Z","1.0.4":"2023-08-16T14:23:15.829Z"},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"description":"23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.","keywords":[],"license":"ISC","readme":"## 初衷\n\n23年3月底离职了，本想回到老家找一份远程工作的机会、事与愿违~.\n\n闲之无聊、灵光炸现， 想自己实现一个不一样的react.\n\n95% 以上的场景都是在做 web开发， 不想在引入一个Fiber层\n状态驻留用 generator， 后序递归遍历也简单的很\n\n希望大家一起学习、也能给您提供思路。\n\n## 只有函数组件奥、 内置dom元素（svg 家族暂未处理）\n\n组件就是一个函数， 包含固定参数\n\n```js\nfunction App(\n\tprops,\n\toldProps,\n\t{ instance, useEffect, useState, useSyncExternalStore }\n) {\n\tlet [state, setState] = useState('');\n\n\tif (true) {\n\t\treturn <div>布拉布拉</div>;\n\t}\n\treturn <ABC />;\n}\n```\n\n## 已实现的功能\n\n- Fragment\n- 子元素数组\n- useState\n- useEffect\n- useSyncExternalStore\n- 批处理更新\n- 元素事件回调 （Once|Passive|Capture） 例： onClickOnce={}\n- onInput 中文输入合成判断\n- KeepAlive (任何组件，)\n- Portal (Fragment 带 target 属性) 没必要多引入一个组件\n\n## 特点\n\n源码特别少， 700 多行吧， 常规功能基本满足\n\n状态保留使用 generator（天然支持状态保留）\n\n## 体验\n\n`pnpm run demo` 直接看源码\n","readmeFilename":"README.md"}