From 0873cb7105a30a49cf69d7ad316cc942a121682f Mon Sep 17 00:00:00 2001 From: fantasticsoul Date: Sat, 6 Jan 2024 12:50:04 +0800 Subject: [PATCH] chore: recover doc-old --- doc/.gitignore | 26 + doc/README.md | 41 + doc/babel.config.js | 3 + doc/blog/2022-05-05-hel-remote-call.mdx | 14 + doc/blog/authors.yml | 5 + doc/blog/fancy-intro.md | 13 + doc/docs/api/README.md | 3 + doc/docs/api/action/_category_.json | 5 + doc/docs/api/action/app-ready.md | 64 + doc/docs/api/action/create-instance.md | 18 + doc/docs/api/action/event-bus.md | 37 + doc/docs/api/action/expose-lib.md | 72 + doc/docs/api/action/get-lib.md | 36 + doc/docs/api/action/lib-ready.md | 65 + doc/docs/api/atom-and-share/_category_.json | 5 + doc/docs/api/atom-and-share/basic-usage.md | 445 +++++++ doc/docs/api/atom-and-share/deep.md | 5 + doc/docs/api/atom-and-share/dep-collect.md | 144 ++ doc/docs/api/atom-and-share/enable-loading.md | 40 + doc/docs/api/atom-and-share/exact.md | 5 + doc/docs/api/atom-and-share/index.md | 59 + doc/docs/api/atom-and-share/intro.md | 119 ++ doc/docs/api/atom-and-share/loading-mode.md | 13 + doc/docs/api/atom-and-share/module-name.md | 25 + doc/docs/api/atom-and-share/mutate.md | 70 + doc/docs/api/atom-and-share/rules.md | 132 ++ doc/docs/api/atom-and-share/shared-ctx.md | 178 +++ doc/docs/api/atom-and-share/stop-dep-arr.md | 5 + doc/docs/api/atom-and-share/stop-depth.md | 5 + doc/docs/api/derive/_category_.json | 5 + doc/docs/api/derive/get-lib.md | 36 + doc/docs/api/derive/lib-ready.md | 65 + doc/docs/api/event/_category_.json | 5 + doc/docs/api/event/lib-ready.md | 65 + doc/docs/api/hooks/_category_.json | 5 + doc/docs/api/hooks/index.md | 5 + doc/docs/api/hooks/use-object.md | 5 + doc/docs/api/hooks/use-service.md | 5 + doc/docs/api/hooks/use-stable.md | 5 + doc/docs/api/loading/_category_.json | 5 + doc/docs/api/loading/app-ready.md | 64 + doc/docs/api/middleware/_category_.json | 5 + doc/docs/api/middleware/lib-ready.md | 65 + doc/docs/api/model/_category_.json | 5 + doc/docs/api/model/lib-ready.md | 65 + doc/docs/api/mutate/_category_.json | 5 + doc/docs/api/mutate/async-mutate.md | 5 + doc/docs/api/mutate/definition-ways.md | 5 + doc/docs/api/mutate/index.md | 168 +++ doc/docs/api/mutate/sync-mutate.md | 5 + doc/docs/api/plugin/_category_.json | 5 + doc/docs/api/plugin/lib-ready.md | 65 + doc/docs/api/quick-start/_category_.json | 5 + doc/docs/api/quick-start/glossary.md | 116 ++ doc/docs/api/quick-start/index.md | 223 ++++ doc/docs/api/quick-start/overview.md | 1177 +++++++++++++++++ doc/docs/api/signal/_category_.json | 5 + doc/docs/api/signal/get-user-event-bus.md | 3 + doc/docs/api/signal/index.md | 5 + doc/docs/api/util/_category_.json | 5 + doc/docs/api/util/lib-ready.md | 65 + doc/docs/api/watch/_category_.json | 5 + doc/docs/api/watch/index.md | 11 + doc/docs/changelog/2022-05-02.md | 7 + doc/docs/changelog/intro.md | 7 + doc/docs/intro.md | 47 + doc/docs/tutorial-basics/_category_.json | 4 + doc/docs/tutorial-basics/congratulations.md | 21 + .../tutorial-basics/create-a-blog-post.md | 34 + doc/docs/tutorial-basics/create-a-document.md | 55 + doc/docs/tutorial-basics/create-a-page.md | 43 + doc/docs/tutorial-basics/deploy-your-site.md | 31 + .../tutorial-basics/markdown-features.mdx | 145 ++ doc/docs/tutorial-extras/_category_.json | 4 + .../tutorial-extras/manage-docs-versions.md | 55 + .../tutorial-extras/translate-your-site.md | 88 ++ doc/docs/tutorial/compare-state.md | 42 + doc/docs/tutorial/helmod-dev-react.md | 52 + doc/docs/tutorial/helmod-dev-vue.md | 56 + doc/docs/tutorial/helmod-dev.md | 88 ++ doc/docs/tutorial/helmod-pub.md | 176 +++ doc/docs/tutorial/modify-state.md | 192 +++ doc/docs/tutorial/practise/_category_.json | 4 + doc/docs/tutorial/practise/hel-antd.md | 224 ++++ doc/docs/tutorial/practise/index.md | 3 + doc/docs/tutorial/practise/tpl-lib.md | 25 + doc/docs/tutorial/practise/tpl-vue.md | 0 doc/docs/tutorial/share-state.md | 142 ++ doc/docs/tutorial/why-helux.md | 7 + doc/docusaurus.config.js | 168 +++ doc/i18n/en/code.json | 273 ++++ .../2022-05-05-hel-remote-call.mdx | 69 + .../authors.yml | 5 + .../fancy-intro.md | 13 + .../options.json | 14 + .../current.json | 38 + .../current/api/basic/_category_.json | 5 + .../current/api/basic/glossary.md | 17 + .../current/api/basic/index.md | 7 + .../current/api/hel-dev-utils/_category_.json | 5 + .../current/api/hel-dev-utils/check.md | 38 + .../api/hel-dev-utils/create-lib-sub-app.md | 136 ++ .../api/hel-dev-utils/create-react-sub-app.md | 22 + .../api/hel-dev-utils/create-vue-sub-app.md | 22 + .../hel-dev-utils/extract-hel-meta-json.md | 116 ++ .../current/api/hel-dev-utils/index.md | 9 + .../current/api/hel-lib-eco.md | 13 + .../current/api/hel-lib-proxy/_category_.json | 5 + .../api/hel-lib-proxy/create-instance.md | 18 + .../current/api/hel-lib-proxy/event-bus.md | 37 + .../current/api/hel-lib-proxy/expose-lib.md | 72 + .../current/api/hel-lib-proxy/get-lib.md | 36 + .../current/api/hel-lib-proxy/lib-ready.md | 65 + .../api/hel-micro-core/_category_.json | 6 + .../api/hel-micro-core/get-user-event-bus.md | 3 + .../api/hel-micro-react/_category_.json | 5 + .../current/api/hel-micro-react/index.md | 33 + .../api/hel-micro-react/useRemoteComp.md | 42 + .../current/api/hel-micro-vue/index.md | 25 + .../current/api/hel-micro/_category_.json | 6 + .../current/api/hel-micro/app-meta-srv.md | 7 + .../current/api/hel-micro/app-param-srv.md | 7 + .../current/api/hel-micro/app-style-srv.md | 7 + .../current/api/hel-micro/bind-externals.md | 7 + .../api/hel-micro/bind-react-runtime.md | 39 + .../current/api/hel-micro/bind-vue-runtime.md | 35 + .../current/api/hel-micro/create-instance.md | 42 + .../api/hel-micro/create-origin-instance.md | 20 + .../current/api/hel-micro/event-bus.md | 39 + .../current/api/hel-micro/index.md | 11 + .../current/api/hel-micro/prefetch-app.md | 33 + .../current/api/hel-micro/prefetch-lib.md | 277 ++++ .../api/types/IControlPreFetchOptions.md | 160 +++ .../current/api/types/IPreFetchOptionsBase.md | 81 ++ .../current/api/types/_category_.json | 5 + .../current/api/types/hel-micro-types.md | 253 ++++ .../current/api/types/hel-types.md | 336 +++++ .../current/changelog/2022-05-02.md | 7 + .../current/changelog/intro.md | 7 + .../current/intro.md | 47 + .../current/tutorial-basics/_category_.json | 4 + .../tutorial-basics/congratulations.md | 21 + .../tutorial-basics/create-a-blog-post.md | 34 + .../tutorial-basics/create-a-document.md | 55 + .../current/tutorial-basics/create-a-page.md | 43 + .../tutorial-basics/deploy-your-site.md | 31 + .../tutorial-basics/markdown-features.mdx | 145 ++ .../current/tutorial-extras/_category_.json | 4 + .../tutorial-extras/manage-docs-versions.md | 55 + .../tutorial-extras/translate-your-site.md | 88 ++ .../current/tutorial/helmod-dev-react.md | 52 + .../current/tutorial/helmod-dev-vue.md | 56 + .../current/tutorial/helmod-dev.md | 88 ++ .../current/tutorial/helmod-pub.md | 170 +++ .../current/tutorial/intro.mdx | 183 +++ .../current/tutorial/practise/_category_.json | 4 + .../current/tutorial/practise/hel-antd.md | 224 ++++ .../current/tutorial/practise/index.md | 3 + .../current/tutorial/practise/tpl-lib.md | 25 + .../current/tutorial/practise/tpl-vue.md | 0 .../current/tutorial/why-hel.md | 7 + .../markdown-page.md | 7 + .../en/docusaurus-theme-classic/footer.json | 38 + .../en/docusaurus-theme-classic/navbar.json | 30 + doc/package.json | 41 + doc/sidebars.js | 41 + doc/src/components/DemoArea/index.js | 5 + doc/src/components/HomepageFeatures/index.js | 85 ++ .../HomepageFeatures/styles.module.css | 11 + doc/src/components/MdViewer/index.js | 27 + doc/src/components/MdViewer/styled.js | 36 + doc/src/components/RemoteCallBtn.js | 3 + doc/src/components/demoCode.js | 95 ++ doc/src/css/custom.css | 51 + doc/src/pages/index.js | 106 ++ doc/src/pages/index.module.css | 23 + doc/src/pages/markdown-page.md | 7 + doc/static/.nojekyll | 0 doc/static/img/docusaurus.png | Bin 0 -> 5142 bytes doc/static/img/hel.ico | Bin 0 -> 5453 bytes doc/static/img/home/s1.png | Bin 0 -> 62066 bytes doc/static/img/home/s2.png | Bin 0 -> 73703 bytes doc/static/img/home/s3.png | Bin 0 -> 66071 bytes doc/static/img/home/s4.png | Bin 0 -> 61659 bytes doc/static/img/home/s5.png | Bin 0 -> 64362 bytes doc/static/img/logo.svg | 1 + .../img/tutorial/docsVersionDropdown.png | Bin 0 -> 25102 bytes doc/static/img/tutorial/localeDropdown.png | Bin 0 -> 30020 bytes doc/static/img/undraw_docusaurus_mountain.svg | 171 +++ doc/static/img/undraw_docusaurus_react.svg | 170 +++ doc/static/img/undraw_docusaurus_tree.svg | 40 + doc/static/media/codicon.805fb6ad.ttf | Bin 0 -> 68156 bytes 192 files changed, 10515 insertions(+) create mode 100644 doc/.gitignore create mode 100644 doc/README.md create mode 100644 doc/babel.config.js create mode 100644 doc/blog/2022-05-05-hel-remote-call.mdx create mode 100644 doc/blog/authors.yml create mode 100644 doc/blog/fancy-intro.md create mode 100644 doc/docs/api/README.md create mode 100644 doc/docs/api/action/_category_.json create mode 100644 doc/docs/api/action/app-ready.md create mode 100644 doc/docs/api/action/create-instance.md create mode 100644 doc/docs/api/action/event-bus.md create mode 100644 doc/docs/api/action/expose-lib.md create mode 100644 doc/docs/api/action/get-lib.md create mode 100644 doc/docs/api/action/lib-ready.md create mode 100644 doc/docs/api/atom-and-share/_category_.json create mode 100644 doc/docs/api/atom-and-share/basic-usage.md create mode 100644 doc/docs/api/atom-and-share/deep.md create mode 100644 doc/docs/api/atom-and-share/dep-collect.md create mode 100644 doc/docs/api/atom-and-share/enable-loading.md create mode 100644 doc/docs/api/atom-and-share/exact.md create mode 100644 doc/docs/api/atom-and-share/index.md create mode 100644 doc/docs/api/atom-and-share/intro.md create mode 100644 doc/docs/api/atom-and-share/loading-mode.md create mode 100644 doc/docs/api/atom-and-share/module-name.md create mode 100644 doc/docs/api/atom-and-share/mutate.md create mode 100644 doc/docs/api/atom-and-share/rules.md create mode 100644 doc/docs/api/atom-and-share/shared-ctx.md create mode 100644 doc/docs/api/atom-and-share/stop-dep-arr.md create mode 100644 doc/docs/api/atom-and-share/stop-depth.md create mode 100644 doc/docs/api/derive/_category_.json create mode 100644 doc/docs/api/derive/get-lib.md create mode 100644 doc/docs/api/derive/lib-ready.md create mode 100644 doc/docs/api/event/_category_.json create mode 100644 doc/docs/api/event/lib-ready.md create mode 100644 doc/docs/api/hooks/_category_.json create mode 100644 doc/docs/api/hooks/index.md create mode 100644 doc/docs/api/hooks/use-object.md create mode 100644 doc/docs/api/hooks/use-service.md create mode 100644 doc/docs/api/hooks/use-stable.md create mode 100644 doc/docs/api/loading/_category_.json create mode 100644 doc/docs/api/loading/app-ready.md create mode 100644 doc/docs/api/middleware/_category_.json create mode 100644 doc/docs/api/middleware/lib-ready.md create mode 100644 doc/docs/api/model/_category_.json create mode 100644 doc/docs/api/model/lib-ready.md create mode 100644 doc/docs/api/mutate/_category_.json create mode 100644 doc/docs/api/mutate/async-mutate.md create mode 100644 doc/docs/api/mutate/definition-ways.md create mode 100644 doc/docs/api/mutate/index.md create mode 100644 doc/docs/api/mutate/sync-mutate.md create mode 100644 doc/docs/api/plugin/_category_.json create mode 100644 doc/docs/api/plugin/lib-ready.md create mode 100644 doc/docs/api/quick-start/_category_.json create mode 100644 doc/docs/api/quick-start/glossary.md create mode 100644 doc/docs/api/quick-start/index.md create mode 100644 doc/docs/api/quick-start/overview.md create mode 100644 doc/docs/api/signal/_category_.json create mode 100644 doc/docs/api/signal/get-user-event-bus.md create mode 100644 doc/docs/api/signal/index.md create mode 100644 doc/docs/api/util/_category_.json create mode 100644 doc/docs/api/util/lib-ready.md create mode 100644 doc/docs/api/watch/_category_.json create mode 100644 doc/docs/api/watch/index.md create mode 100644 doc/docs/changelog/2022-05-02.md create mode 100644 doc/docs/changelog/intro.md create mode 100644 doc/docs/intro.md create mode 100644 doc/docs/tutorial-basics/_category_.json create mode 100644 doc/docs/tutorial-basics/congratulations.md create mode 100644 doc/docs/tutorial-basics/create-a-blog-post.md create mode 100644 doc/docs/tutorial-basics/create-a-document.md create mode 100644 doc/docs/tutorial-basics/create-a-page.md create mode 100644 doc/docs/tutorial-basics/deploy-your-site.md create mode 100644 doc/docs/tutorial-basics/markdown-features.mdx create mode 100644 doc/docs/tutorial-extras/_category_.json create mode 100644 doc/docs/tutorial-extras/manage-docs-versions.md create mode 100644 doc/docs/tutorial-extras/translate-your-site.md create mode 100644 doc/docs/tutorial/compare-state.md create mode 100644 doc/docs/tutorial/helmod-dev-react.md create mode 100644 doc/docs/tutorial/helmod-dev-vue.md create mode 100644 doc/docs/tutorial/helmod-dev.md create mode 100644 doc/docs/tutorial/helmod-pub.md create mode 100644 doc/docs/tutorial/modify-state.md create mode 100644 doc/docs/tutorial/practise/_category_.json create mode 100644 doc/docs/tutorial/practise/hel-antd.md create mode 100644 doc/docs/tutorial/practise/index.md create mode 100644 doc/docs/tutorial/practise/tpl-lib.md create mode 100644 doc/docs/tutorial/practise/tpl-vue.md create mode 100644 doc/docs/tutorial/share-state.md create mode 100644 doc/docs/tutorial/why-helux.md create mode 100644 doc/docusaurus.config.js create mode 100644 doc/i18n/en/code.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-blog/2022-05-05-hel-remote-call.mdx create mode 100644 doc/i18n/en/docusaurus-plugin-content-blog/authors.yml create mode 100644 doc/i18n/en/docusaurus-plugin-content-blog/fancy-intro.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-blog/options.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/basic/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/basic/glossary.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/basic/index.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/check.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/create-lib-sub-app.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/create-react-sub-app.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/create-vue-sub-app.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/extract-hel-meta-json.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-dev-utils/index.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-eco.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-proxy/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-proxy/create-instance.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-proxy/event-bus.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-proxy/expose-lib.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-proxy/get-lib.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-lib-proxy/lib-ready.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro-core/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro-core/get-user-event-bus.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro-react/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro-react/index.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro-react/useRemoteComp.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro-vue/index.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/app-meta-srv.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/app-param-srv.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/app-style-srv.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/bind-externals.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/bind-react-runtime.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/bind-vue-runtime.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/create-instance.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/create-origin-instance.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/event-bus.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/index.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/prefetch-app.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/hel-micro/prefetch-lib.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/types/IControlPreFetchOptions.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/types/IPreFetchOptionsBase.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/types/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/types/hel-micro-types.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/api/types/hel-types.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/changelog/2022-05-02.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/changelog/intro.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/intro.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/congratulations.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-blog-post.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-document.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-page.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/deploy-your-site.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-basics/markdown-features.mdx create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-extras/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-extras/manage-docs-versions.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial-extras/translate-your-site.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/helmod-dev-react.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/helmod-dev-vue.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/helmod-dev.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/helmod-pub.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/intro.mdx create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/practise/_category_.json create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/practise/hel-antd.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/practise/index.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/practise/tpl-lib.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/practise/tpl-vue.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-docs/current/tutorial/why-hel.md create mode 100644 doc/i18n/en/docusaurus-plugin-content-pages/markdown-page.md create mode 100644 doc/i18n/en/docusaurus-theme-classic/footer.json create mode 100644 doc/i18n/en/docusaurus-theme-classic/navbar.json create mode 100644 doc/package.json create mode 100644 doc/sidebars.js create mode 100644 doc/src/components/DemoArea/index.js create mode 100644 doc/src/components/HomepageFeatures/index.js create mode 100644 doc/src/components/HomepageFeatures/styles.module.css create mode 100644 doc/src/components/MdViewer/index.js create mode 100644 doc/src/components/MdViewer/styled.js create mode 100644 doc/src/components/RemoteCallBtn.js create mode 100644 doc/src/components/demoCode.js create mode 100644 doc/src/css/custom.css create mode 100644 doc/src/pages/index.js create mode 100644 doc/src/pages/index.module.css create mode 100644 doc/src/pages/markdown-page.md create mode 100644 doc/static/.nojekyll create mode 100644 doc/static/img/docusaurus.png create mode 100644 doc/static/img/hel.ico create mode 100755 doc/static/img/home/s1.png create mode 100755 doc/static/img/home/s2.png create mode 100755 doc/static/img/home/s3.png create mode 100755 doc/static/img/home/s4.png create mode 100755 doc/static/img/home/s5.png create mode 100644 doc/static/img/logo.svg create mode 100644 doc/static/img/tutorial/docsVersionDropdown.png create mode 100644 doc/static/img/tutorial/localeDropdown.png create mode 100644 doc/static/img/undraw_docusaurus_mountain.svg create mode 100644 doc/static/img/undraw_docusaurus_react.svg create mode 100644 doc/static/img/undraw_docusaurus_tree.svg create mode 100644 doc/static/media/codicon.805fb6ad.ttf diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 00000000..5f0f0ff7 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,26 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader +package-lock.json + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +tmp +# docs/tutorial-basics +# docs/tutorial-extras + diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 00000000..aaba2fa1 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,41 @@ +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/doc/babel.config.js b/doc/babel.config.js new file mode 100644 index 00000000..e00595da --- /dev/null +++ b/doc/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/doc/blog/2022-05-05-hel-remote-call.mdx b/doc/blog/2022-05-05-hel-remote-call.mdx new file mode 100644 index 00000000..a0bb845d --- /dev/null +++ b/doc/blog/2022-05-05-hel-remote-call.mdx @@ -0,0 +1,14 @@ +--- +slug: hel-remote-call +title: show hel remote call +authors: [fantasticsoul] +tags: [hel] +--- + +show helux + +:::tip + +Use the power of React to create interactive blog posts. + +::: diff --git a/doc/blog/authors.yml b/doc/blog/authors.yml new file mode 100644 index 00000000..573a36cf --- /dev/null +++ b/doc/blog/authors.yml @@ -0,0 +1,5 @@ +fantasticsoul: + name: fantasticsoul + title: hel-micro maintainer + url: https://github.com/fantasticsoul + image_url: https://avatars.githubusercontent.com/u/7334950?v=4 diff --git a/doc/blog/fancy-intro.md b/doc/blog/fancy-intro.md new file mode 100644 index 00000000..a4b12d09 --- /dev/null +++ b/doc/blog/fancy-intro.md @@ -0,0 +1,13 @@ +--- +slug: change1 +title: fantasticsoul intro +author: fantasticsoul +author_title: tencent frontend engineer +author_url: https://github.com/fantasticsoul +author_image_url: https://avatars.githubusercontent.com/u/7334950?v=4 +tags: [hel-micro] +--- + +## 更新 + +主要做了 xxx 更新 diff --git a/doc/docs/api/README.md b/doc/docs/api/README.md new file mode 100644 index 00000000..876afa35 --- /dev/null +++ b/doc/docs/api/README.md @@ -0,0 +1,3 @@ +## menu order + +- quick-start diff --git a/doc/docs/api/action/_category_.json b/doc/docs/api/action/_category_.json new file mode 100644 index 00000000..df43467b --- /dev/null +++ b/doc/docs/api/action/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 5 +} diff --git a/doc/docs/api/action/app-ready.md b/doc/docs/api/action/app-ready.md new file mode 100644 index 00000000..c1aa5b5c --- /dev/null +++ b/doc/docs/api/action/app-ready.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 5 +--- + +# appReady + +`appReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露的应用根组件(react 项目、vue 项目等)提供给其他项目(即远程模块的使用方) + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { appReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const App = await import('./App'); // 项目根组件 + appReady(LIB_NAME, App); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +appReady('xxx', App, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchApp](/docs/api/hel-micro/prefetch-app)接口加载该项目根组件时,就需要指定相同的平台值才能正常拉取到 + +```ts +preFetchApp('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +appReady('xxx', App, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchApp('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露根组件 + +```ts +appReady('xxx', App, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/action/create-instance.md b/doc/docs/api/action/create-instance.md new file mode 100644 index 00000000..9612216e --- /dev/null +++ b/doc/docs/api/action/create-instance.md @@ -0,0 +1,18 @@ +--- +sidebar_position: 3 +--- + +# createInstance + +使用`createInstance`可用于按需重设符合自己需求的默认平台值,该接口会返回的一个 api 对象,使用该对象调用的任何方法都将使用重设的平台值,可基于此接口定制自己的`hel-lib-proxy`包发布到 npm 方便其他项目复用。 + +## 基础用法 + +### 设置默认值 + +```ts +import { createInstance } from 'hel-lib-proxy'; + +const ins = createInstance('myplat'); +// 调用 ins.libReady 将默认使用 myplat 平台值 +``` diff --git a/doc/docs/api/action/event-bus.md b/doc/docs/api/action/event-bus.md new file mode 100644 index 00000000..ed3114a3 --- /dev/null +++ b/doc/docs/api/action/event-bus.md @@ -0,0 +1,37 @@ +--- +sidebar_position: 4 +--- + +# eventBus + +使用`eventBus`可方便的在主应用和子模块之间进行事件通信 + +:::tip 不同包的 eventBus 也可以相互通信 + +`hel-lib-proxy`包导出的`eventBus`和`hel-micro`包导出的`eventBus`相互间也是可以进行事件通信的 + +::: + +## 基础用法 + +### 发射事件 + +```ts +import { eventBus } from 'hel-lib-proxy'; +eventBus.emit('evName', ...args); +``` + +### 监听事件 + +```ts +const cb = (...args) => { + /** your logic */ +}; +eventBus.on('evName', cb); +``` + +### 取消监听 + +```ts +eventBus.off('evName', cb); +``` diff --git a/doc/docs/api/action/expose-lib.md b/doc/docs/api/action/expose-lib.md new file mode 100644 index 00000000..b9f421c8 --- /dev/null +++ b/doc/docs/api/action/expose-lib.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 1 +--- + +# exposeLib + +`exposeLib`是服务于模块提供方的接口,在`rollup`打包入口文件使用,用于将代码的类型与代理对象暴露出去,具体使用可参考此[libTypes](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/entrance/libTypes.ts)文件。 + +## 基础用法 + +### 暴露模块代理对象 + +暴露代理对象并使用 rollup 打包发布到 npm 后,使用方先使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)做预加载,然后就可以安全的静态导入 + +- 提供方 + +```ts +import { exposeLib } from 'hel-lib-proxy'; +import { LIB_NAME } from 'configs/subApp'; + +export const lib = exposeLib(LIB_NAME); +export default lib; +``` + +-使用方 + +```ts +// 入口文件出预加载运行时代码 +await preFetchLib('xxx'); + +// 其他文件里静态导入模块代理对象 +import xxx from 'xxx'; // 实际运行代码将由 preFetchLib 填充 + +xxx.callRemoteMethod(); // 这里即可安全的调用远程方法 +``` + +### 暴露模块类型 + +对于 ts 工程,建议连同类型一起暴露,方便调用方获得友好的 IDE 智能提示,提高开发体验 + +```ts +import type { LibProperties } from './libProperties'; // 此处仅导出类型,不会影响rollup的打包体积 +import { exposeLib } from 'hel-lib-proxy'; +import { LIB_NAME } from 'configs/subApp'; + +export const lib = exposeLib(LIB_NAME); +export type Lib = LibProperties; + +export default lib; +``` + +## 高级用法 + +### 使用方直接获得代理对象 + +虽然`exposeLib`是服务于模块提供方的接口,但如果模块提供方并未发布代理对象到 npm,而使用方有需要使用静态导入功能时,可使用`exposeLib`直接获取到代理对象 + +```ts +// 入口文件出预加载运行时代码 +await preFetchLib('xxx'); + +// 其他文件里使用 exposeLib 获得模块代理对象 +import { exposeLib } from 'hel-lib-proxy'; +const xxxLib = exposeLib('xxx'); +xxx.callRemoteMethod(); // 这里即可安全的调用远程方法 +``` + +也可透传类型泛型获得相关类型提示 + +```ts +const xxxLib = exposeLib('xxx'); +``` diff --git a/doc/docs/api/action/get-lib.md b/doc/docs/api/action/get-lib.md new file mode 100644 index 00000000..846842f5 --- /dev/null +++ b/doc/docs/api/action/get-lib.md @@ -0,0 +1,36 @@ +--- +sidebar_position: 2 +--- + +# getLib + +`getLib`是服务于模块使用方的接口,提前调用[preFetchLib](/docs/api/hel-micro/prefetch-lib)做预加载后,可直接获取远程模块暴露对象 + +## 基础用法 + +### 获取模块对象 + +获取第一个预加载的模块对象 + +```ts +import { getLib } from 'hel-lib-proxy'; +getLib('xxx'); +``` + +### 指定版本号 + +获取指定版本的模块对象 + +```ts +import { getLib } from 'hel-lib-proxy'; +getLib('xxx', { versionId: 'v1' }); +``` + +### 指定平台值 + +获取指定平台值的模块对象(默认值 unpkg) + +```ts +import { getLib } from 'hel-lib-proxy'; +getLib('xxx', { platform: 'myplat' }); +``` diff --git a/doc/docs/api/action/lib-ready.md b/doc/docs/api/action/lib-ready.md new file mode 100644 index 00000000..6988a7da --- /dev/null +++ b/doc/docs/api/action/lib-ready.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 0 +--- + +# libReady + +`libReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露对象提供给其他项目(即远程模块的使用方),详细用法可参考[hel-tpl-remote-lib](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/index.ts)、[hel-tpl-remote-react-comp-ts](https://github.com/hel-eco/hel-tpl-remote-react-comp-ts/blob/master/src/index.tsx)、[hel-tpl-remote-vue-comp](https://github.com/hel-eco/hel-tpl-remote-vue-comp/blob/master/src/main.js)这几个项目的入口文件 + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { libReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const libProperties = await import('./entrance/libProperties'); + // 此处是否写 .default 取决于暴露语法是 export { xxx } 还是 export default xxx + libReady(LIB_NAME, libProperties.default); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +libReady('xxx', libProperties, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)接口加载该模块时,就需要指定相同的平台值才能正常拉取到该模块 + +```ts +preFetchLib('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +libReady('xxx', libProperties, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchLib('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露模块 + +```ts +libReady('xxx', libProperties, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/atom-and-share/_category_.json b/doc/docs/api/atom-and-share/_category_.json new file mode 100644 index 00000000..7c8bac6c --- /dev/null +++ b/doc/docs/api/atom-and-share/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 1 +} diff --git a/doc/docs/api/atom-and-share/basic-usage.md b/doc/docs/api/atom-and-share/basic-usage.md new file mode 100644 index 00000000..ce401e62 --- /dev/null +++ b/doc/docs/api/atom-and-share/basic-usage.md @@ -0,0 +1,445 @@ +--- +sidebar_position: 1 +--- + +# 基本用法 + +## 创建共享对象 + +### atom + +`atom`支持包括原始类型在内的所有类型,但会被装箱为`{ val: any }` 结构,直接读取时需要取`.val`做拆箱操作 + +```ts +import { atom } from 'helux'; + +const [numAtom] = atom(1); +const [objAtom] = atom({ info: { born: 2023 } }); +console.log(numAtom); // numAtom: { val: 1 } +console.log(objAtom); // objAtom: { val: {info: { born: 2023 }} } +``` + +### share + +`share`支持对象类型,因本身是对象,无装箱行为,可以直接读取目标任意节点值 + +```ts +import { share } from 'helux'; + +const [sharedObj] = share({ info: { born: 2023 } }); +console.log(sharedObj); // sharedObj: {info: { born: 2023 }} +``` + +:::tip share 优先 + +优先考虑 share 共享对象由于`share`接口没有装箱`{val: T}` 的操作,当共享对象为 `object` 时,可优先使用`share`来共享对象,避免一些无自动拆箱的场景多做一次`.val`取值操作 + +::: + +## 使用共享对象 + +### hook + +基于`useShared`或`useAtom`钩子函数在组件内使用共享对象,会实时收集到[数据依赖](/helux/docs/api/quick-start/glossary#组件渲染依赖收集),数据变更后自动通知组件重渲染 + +```tsx +import { useAtom, useShared } from 'helux'; + +function Demo() { + const [state] = useShared(sharedState); + return

hello helux shared {state.info.born}

; +} + +function Demo2() { + const [num] = useAtom(numAtom); // useAtom 返回结果已对 numAtom 自动拆箱 + return

hello helux shared {num}

; +} +``` + +:::tip useAtom 自动拆箱 + +useAtom 会自动做 .val 拆箱操作,用户在组件里无需再次拆箱 + +::: + +:::danger useAtom 和 useShared 不可混用 + +不可将 atom 对象传给 useShared,不可将 shared 对象传给 useAtom,否则会引起运行时报错 + +::: + +### signal + +`signal`响应机制允许用户跳过`useAtom`和`useShared`直接将数据绑定到视图,更多使用方式可查看[signal 章节](/helux/docs/api/signal)。 + +#### $绑定 + +使用`$`符号绑定单个原始值 + +```tsx +import { $ } from 'helux'; + +// 数据变更仅触发 $符号区域内重渲染 +

{$(numAtom)}

// 包含原始值的atom可安全绑定 +

{$(shared.b.b1)}

// 对象型需自己取到原始值绑定 +``` + +原始值 atom 拆箱以否均能正常绑定 + +```tsx +

{$(numAtom)}

// ✅ ok +

{$(numAtom.val)}

// ✅ ok +``` + +#### block 绑定 + +使用`block`创建局部响应块 + +```tsx +import { block } from 'helux'; + +// UserBlock 已被 memo +const UserBlock = block(() => ( +
+ name: {user.name} + desc: {user.detail.desc} +
+)); + +// 其他地方使用 UserBlock +; +``` + +#### 混合使用 + +`block` 和 `$` 混合使用 + +```tsx +const UserBlock = block(() => ( +
+ name: {user.name} + price:

{$(numAtom)}

+
+)); +``` + +#### 错误的绑定方式 + +因`jsx`花括号内部本身也是不支持绑定对象的,如果`$()`传入对象将报错 + +```tsx +// 需注意:绑定对象将报错 +

{objAtom}

// ❌ jsx 不支持绑定对象 +

{$(objAtom)}

// ❌ signal 不支持绑定对象 +``` + +:::tip 依赖追踪 + +`helux`内部会自动对`$`或`block`节点建立起视图对数据变化的依赖关系,让 react 的渲染粒度从**组件粒度**降低到**dom 粒度**,极致缩小视图渲染范围,大幅提高应用整体渲染性能! + +::: + +## 修改共享对象 + +### setState + +使用钩子返回的 set 句柄创建修改共享对象的函数 + +```ts +const [state, setState] = useShared(sharedState); +const handelChange = () => + setState((draft) => { + draft.name = 'newName'; + }); +``` + +使用`atom`或者`share`接口返回的 set 句柄定义修改函数,将修改函数提升到组件外部 + +#### share 修改 + +修改`share`返回的共享对象 + +```ts +const [shared, setShared] = atom({ info: { name: 'helux', age: 1 }, desc: 'awesome lib' }); + +// 这是一个组件外部的函数,可全局任意地方使用 +function changName(name) { + // 回调里基于草稿修改,修改结束后,生成一份新的具有结构共享特性的状态 + setShared((draft) => { + draft.info.name = name; + }); +} +``` + +浅层次修改,可在回调里**返回部分对象**或直接传入**部分对象** + +```ts +// 以下两句运行结束后,内部均会转变为 draft.desc = 'new desc' 赋值 +setShared(() => ({ desc: 'new desc' })); // 回调返回 +setShared({ desc: 'new desc' }); // 直接传入 +``` + +支持对`draft`修改,同时也返回部分状态的修改方式 + +```ts +// 以下调用结束后,内部会分析到有返回值并自动补上 draft.desc = 'new desc' 操作 +setShared((draft) => { + draft.info.name = 'new name'; // 深层次对象基于draft + return { desc: 'new desc' }; // 返回部分状态 +}); +``` + +注意,helux 总是会对所有使用方比较新旧值确定是否要重运行相关依赖函数(包含派生函数、渲染函数),如非必须不用替换整个对象,总是保持对最小目标做数据修改可缩小依赖函数运行范围。 + +```tsx +const [shared, setShared] = share({ info: { name: 'helux', age: 1 }, desc: 'awesome lib' }); + +// 💢 此修改是重新生成整个 info 对象,但仅会造成 Info 重新渲染 +setShared((draft) => { + draft.info = { ...draft.info, name: 'new name' }; +}); + +// 💢 触发执行,因为 info 引用已变化 +function Info() { + const [state] = useShared(shared); + console.log(state.info); + return

just read info

; +} + +// ✅ 不被执行 +watch(() => { + console.log('name changed'); +}, [shared.info.name]); +// ✅ 不被执行 +const nameResult = deriveAtom(() => `prefix:${shared.info.name}`); +// ✅ 不被执行 +function Name() { + const [state] = useShared(shared); + return

{state.info.name}

; +} +// ✅ 不被执行 +function Age() { + const [state] = useShared(shared); + return

{state.info.age}

; +} +``` + +#### atom 修改 + +修改`atom`共享原始值,返回结果均会被自动装箱为 `{ val: T }` + +```ts +const [numAtom, setAtom] = atom(1); + +// 回调里返回最新值 +setAtom(() => Math.random()); +// 回调里基于草稿修改,回调里已对atom拆箱,因atom是原始值,此刻的草稿也是原始值 +setAtom((draft) => draft + Math.random()); +// 直接传入最新值修改 +setAtom(Math.random()); +``` + +修改`atom`共享原始值为 `undefined` + +> 内部默认忽略 setAtom 返回的有歧义的 undefined 值,如需设置 undefined 值,可使用 `setAtomVal` 或 `currentDraftRoot` + +```ts +import { setAtomVal, currentDraftRoot } from 'helux'; + +setAtom(() => setAtomVal(undefind)); +setAtom(() => (currentDraftRoot().val = undefind)); +``` + +修改`atom`字典型共享对象 + +- 深层次修改 + +```ts +const [dictAtom, setDictAtom] = atom({ desc: 'helux atom', info: { born: 2023 } }); +// 回调里基于草稿修改 +setDictAtom((draft) => { + draft.info.born = 2022; +}); +``` + +- 浅层次修改 + +```ts +const [dictAtom, setDictAtom] = atom({ desc: 'helux atom', info: { born: 2023 } }); +// 回调里基于草稿修改 +setDictAtom((draft) => { + draft.desc = 'helux atom'; +}); + +// 也可返回部分状态,和上面写法等效 +setDictAtom(() => ({ desc: 'helux atom' })); +``` + +- 混合修改 + +既基于草稿修改,也返回部分状态 + +```ts +// 内部会自动将返回的部分字典补到草稿上 draft.desc = 'helux atom'; +setDictAtom((draft) => { + draft.info.born = 2022; + return { desc: 'helux atom' }; +}); +``` + +修改`atom`非字典型共享对象,通常指`Array`、`Map`、`Set` 数据结构 + +- 修改部分节点 + +```ts +const [listAtom, setListAtom] = atom([{ name: 1 }, { name: 2 }]); + +// 返回的对象为字典对象,可以是部分对象 +setListAtom((draft) => (draft[1].name = 3)); +``` + +:::tip setAtom 回调 draft 未拆箱 + +`setAtom` 内部未对 `draft` 做类似 `setAtom(draftVal => { draftVal.info.born = 2022 })` 的拆箱操作,即回调参数直接给 `draft.val` 的值 + +> 主要是考虑到需要对原始值 atom 赋值 `undefined` 的场景, +> 基于 `draft.val` 方便且没有歧义:`setAtom(draft => { draft.val = undefined })`; + +::: + +### action + +使用`action`工厂函数接口创建修改共享对象的方法,更多使用方式可查看[action 章节](/helux/docs/api/action)。 + +#### 同步 action + +```ts +const normalAction = atomAction(numAtom)(({ setState, args, draft }) => { + const val = args[0] && Number.isInteger(args[0]) ? args[0] : random(); + draft.val = val; // 可直接修改 draft +}, 'normalAction'); +normalAction(1); // 参数将透传给 args +``` + +#### 异步 action + +```ts +const asyncAction = atomActionAsync(numAtom)(async ({ setState, args }) => { + await delay(2000); + const val = args[0] && Number.isInteger(args[0]) ? args[0] : random(); + setState((draft) => (draft.val = val)); // 异步函数里必须使用 setState 同步修改状态 +}, 'asyncAction'); +``` + +### mutate + +配置 `mutate` **可变派生函数**可观察自身或者其他共享状态的 a 节点变化来自动引起当前共享状态的 b 节点变化,更多使用方式可查看[mutate 章节](/helux/docs/api/mutate)。 + +#### 同步 mutate + +```ts +const [share1] = share({ desc: 'helux atom', info: { born: 2023 } }); +const [share2] = share( + { suffixedDesc: '' }, + { + mutate: { + // share1.desc 变化时自动触发 share2.suffixedDesc 计算 + suffixedDesc: (draft) => { + draft.suffixedDesc = `${share1.desc}_${Date.now()}`; + }, + }, + }, +); +``` + +`mutate`函数是基于数据变化自动驱动的,也支持人工重运行 + +```ts +import { runMutate } from 'helux'; + +// 重运行 share2 的 suffixedDesc 可变派生函数 +const snap = runMutate(share2, 'suffixedDesc'); +``` + +#### 异步 mutate + +异步 mutate 需要通过`deps`函数显式定义依赖,更多使用方式可查看[sync 章节](/helux/docs/api/sync)。 + +```ts +const [share1] = share({ desc: 'helux atom', info: { born: 2023 } }); +const [share2] = share( + { suffixedDesc: '' }, + { + mutate: { + // share1.desc 变化时自动触发 share2.suffixedDesc 计算 + suffixedDesc: { + // 定义依赖项 + deps: () => [share1.desc], + // 异步计算任务 + task: async ({ setState }) => { + await delay(1000); + setState((draft) => { + draft.suffixedDesc = `${share1.desc}_${Date.now()}`; + }); + }, + }, + }, + }, +); +``` + +异步可变派生函数也支持人工重运行 + +```ts +import { runMutateTask } from 'helux'; + +// 重运行 share2 的 suffixedDesc 可变派生异步函数 +const snap = runMutateTask(share2, 'suffixedDesc'); +``` + +### sync + +基于 `sync` 工厂函数生成获取具体的数据同步器来直接修改表单数据,达到**双向绑定**的效果! + +```ts +import { share, syncer, sync } from 'helux'; + +const [sharedState, , ctx] = share({ a: 1 }); + +// 基于顶层 api 创建 syncer +const mySyncer = syncer(sharedState); +const mySync = sync(sharedState); + +// 或者基于共享上下文导出当前共享状态的 syncer sync +const { syncer: mySyncer, sync: mySync } = ctx; +``` + +#### 一层路径 + +提供 `syncer` 或 `sync` 生成数据同步函数 + +```tsx +function Demo() { + const [shared] = useShared(sharedState); + return ; + // or + return to.a)} />; +} +``` + +#### 多层路径 + +使用 `sync` 生成数据同步函数 + +```tsx +function Demo() { + const [shared] = useShared(sharedState); + return to.a.b.d)} />; +} +``` + +:::tip 自动提取 event 值 + +sync 生成的函数会自动尝试提取 event 值,如果不是 event 对象,则继续透传原始值,可放心使用 sync 绑定任意 ui 框架组件 + +::: diff --git a/doc/docs/api/atom-and-share/deep.md b/doc/docs/api/atom-and-share/deep.md new file mode 100644 index 00000000..ad46230d --- /dev/null +++ b/doc/docs/api/atom-and-share/deep.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 8 +--- + +# deep diff --git a/doc/docs/api/atom-and-share/dep-collect.md b/doc/docs/api/atom-and-share/dep-collect.md new file mode 100644 index 00000000..42dbfab2 --- /dev/null +++ b/doc/docs/api/atom-and-share/dep-collect.md @@ -0,0 +1,144 @@ +--- +sidebar_position: 2 +--- + +# 依赖收集 + +`helux`对共享对象实现了依赖收集功能,可做到更精准的重渲染,`signal`和`block`内部实现本身也依赖到了此功能 + +## 普通对象 + +组件在渲染函数里读取对象时的具体值时,就收集到了数据依赖 + +```tsx +const [obj, setState] = share({ a: 1, b: { b1: 2 }, c: 100 }); + +function change() { + // 基于草稿修改,回调执行结束后,内部会生成一份结构共享特性的新状态 + // 当前修改只会引起下面的 Comp2 组件实例重渲染 + setState((draft) => (draft.b.b1 = Math.random())); +} + +function Comp1() { + const [obj] = userShared(objAtom); + // 当前组件仅对 obj.a 有依赖 + return

obj.a {obj.a}

; +} + +function Comp2() { + const [obj] = userShared(objAtom); + // 当前组件仅对 obj.b.b1 有依赖 + return

obj.b.b1 {obj.b.b1}

; +} +``` + +## 数组对象 + +对于数组结构的数据,默认只追踪到下标位置,可配合工具函数`shallowCompare`做精准渲染 + +```tsx +import { atom, shallowCompare, useAtom } from 'helux'; +// 因 share 直接受 object 数据,此处刻意用 atom +const [listAtom, setAtom] = atom([ + { id: 1, name: 11 }, + { id: 2, name: 22 }, +]); + +function change(idx: number) { + // 当前修改仅会引起 List 和 Item1 重渲染 + setAtom((draft) => { + draft.val[idx].name = Date.now(); + }); +} + +const Item = React.memo((props) => { + const { item } = props; + return ( +
+ id: {item.id} name: {item.name} +
+ ); + // 透传 shallowCompare 函数,用于比较item代理对象前后是否一致,内部会比较数据版本号 +}, shallowCompare); + +function List() { + const [list] = useAtom(listAtom); + return ( +
+ +
+ {list.map((item) => ( + + ))} +
+
+ ); +} +``` + +## 动态依赖收集 + +`helux`默认对组件开启动态的依赖收集行为,可实时收集到组件实例的每一轮渲染所需依赖,做到更智能的精确更新 + +```tsx +const [obj, setState] = share({ a: 1, b: { b1: 2 }, c: 100 }); + +function Comp1() { + const [obj] = userShared(objAtom); + // 在 obj.a>10 时,当前组件依赖时 obj.a,obj.b.b1 + // 反之则是 obj.a,obj.c + return

dynamic dep colletion {obj.a > 10 ? obj.b.b1 : obj.c}

; +} +``` + +如不需要,可设置为仅首轮渲染需要收集依赖,进一步提高渲染性能 + +```ts +// 仅首轮渲染收集依赖 +useShared(numAtom, { collectType: 'first' }); +``` + +:::caution 依赖丢失 + +关闭动态依赖收集后,如果出现条件语句读取值的场景,例如:`

{state.a?state.b:state.c}

`,则会造成依赖丢失,可提前全部读取再使用来避免此问题 + +::: + +## 自定义收集规则 + +默认情况下,对象的依赖收集的深度值为`6`,在不操过深度值的情况下,针对数组只收集到下标位置,可通过配置依赖收集规则来改变默认的收集策略 + +- `stopDepth` 控制依赖收集深度,默认`6` +- `stopArrDep` 控制数组是否只收集到下标位置,默认 `true` + +```ts +const [state, setState, ctx] = share( + { + a: { + b: { + list: [ + { name: 1, age: 2, info: { street: 'u_road' } }, + { name: 2, age: 22, info: { street: 'u_road_2' } }, + ], + }, + }, + a1: { a2: { a3: { a4: { a5: { a6: { a7: { a8: 1 } } } } } } }, + }, + { + stopDepth: 12, // 改为 12 + stopArrDep: false, // 对象里的所有数组都继续向下收集(即关闭只收集到下标位置规则) + }, +); +``` + +可针对状态某些节点设置收集规则 + +```ts +const [state, setState, ctx] = share({ ... }, { + rules: [ + // 当读取或写入 a.b.list 数据时,停止依赖收集,即依赖只记录到下标,此设定优先级高于顶层的 stopArrDep + { when: state => state.a.b.list, stopDep: true }, + ], + stopArrDep: false, // 对象里的所有数组都继续向下收集(即关闭只收集到下标位置规则) +}); +``` diff --git a/doc/docs/api/atom-and-share/enable-loading.md b/doc/docs/api/atom-and-share/enable-loading.md new file mode 100644 index 00000000..502dd806 --- /dev/null +++ b/doc/docs/api/atom-and-share/enable-loading.md @@ -0,0 +1,40 @@ +--- +sidebar_position: 6 +--- + +# 响应 loading 变化 + +参数为`enableLoading`,默认值`true`,当你确定此状态永远不会存在异步修改的情况,可以设置为`false`关闭 loading 响应 + +```ts +const [state, setState, ctx] = share({ ... }, { + enableLoading: false, +}); +``` + +:::caution + +大多数情况下不需要调整此值,除非你真的确定某共享状态不存在异步修改的情况,或不需要使用方感知到异步 loading 变化,为了提高一点运行性能则可以设置为 false + +::: + +关闭后,`useMutateLoading`、`useActionLoading`、`useDerived` 返回的 loadStatus 均不会变化 + +```ts +// 异步 mutate 的 loadStatus 不再变化 +function Demo() { + const loading = useMutateLoading(state); + const loadStatus = loading['someAsyncMutate']; +} + +// 异步 action 的 loadStatus 不再变化 +function Demo() { + const loading = useActionLoading(state); + const loadStatus = loading['someAsyncAction']; +} + +// 异步全量计算结果 的 loadStatus 不再变化 +function Demo() { + const [result, loadStatus] = useDerived(someAsyncResult); +} +``` diff --git a/doc/docs/api/atom-and-share/exact.md b/doc/docs/api/atom-and-share/exact.md new file mode 100644 index 00000000..057cf170 --- /dev/null +++ b/doc/docs/api/atom-and-share/exact.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 5 +--- + +# exact diff --git a/doc/docs/api/atom-and-share/index.md b/doc/docs/api/atom-and-share/index.md new file mode 100644 index 00000000..b37c94c8 --- /dev/null +++ b/doc/docs/api/atom-and-share/index.md @@ -0,0 +1,59 @@ +--- +sidebar_position: 0 +--- + +# atom&share + +本章节是 `atom`和`share` api 简单使用方式,更多详情可查看 + +- [基础用法](/helux/docs/api/atom-and-share/basic-usage) + +## 使用方式 + +### atom 定义 + +```ts +import { atom, deriveAtom, useAtom } from 'helux'; +// atom 定义 +const [numAtom, setAtom] = atom(1); +``` + +### 组件外修改 + +```ts +const changeAtom = (newNum) => setAtom(newNum); +const changeAtomByDraft = (newNum) => + setAtom((draft) => { + draft.val = newNum; + }); +``` + +### 可变派生 + +```ts +const [doubleAtom] = atom(0, { + mutate: (draft) => { + draft.val = numAtom.val * 2; + }, +}); +``` + +### 全量派生 + +```ts +const doubuleResult = deriveAtom(() => numAtom.val * 2); +``` + +### 组件内使用 + +```ts +function Demo() { + const [num, setNum] = useAtom(numAtom); + // 此处的调用和 changeAtom changeAtomByDraft 等效 + const innerChangeAtom = (newNum) => setNum(newNum); + const innerChangeAtomByDraft = (newNum) => + setNum((draft) => { + draft.val = newNum; + }); +} +``` diff --git a/doc/docs/api/atom-and-share/intro.md b/doc/docs/api/atom-and-share/intro.md new file mode 100644 index 00000000..764bc159 --- /dev/null +++ b/doc/docs/api/atom-and-share/intro.md @@ -0,0 +1,119 @@ +--- +sidebar_position: 0 +--- + +# 简介 + +`atom` 支持传入所有类型的值(包括原值类型值),返回结果被自动装箱为 `{ val: T }` 结构,取值需做一次`.val`操作 + +```ts +import { atom } from 'helux'; + +const [numAtom] = atom(1); // { val: 1 } +const [boolAtom] = atom(true); // { val: true } +const [listAtom] = atom([1, 2, 3]); // { val: [1,2,3] } +const [dictAtom] = atom({ desc: 'helux atom' }); // { val: { desc: 'helux atom'} } + +// 也支持 Map Set 结构,但不建议使用,不利于后期做数据持久化 +const [numAtom] = atom( + new Map([ + [1, 1], + [2, 2], + ]), +); +``` + +支持传入初始值工厂函数 + +```ts +const [numAtom] = atom(() => 66); // numAtom: { val: 66 } +const [numAtom] = atom(() => [1, 2, 3]); // numAtom: { val: [1,2,3] } +``` + +组件外取值或修改值需做一次`.val`操作 + +```tsx +const [numAtom, setAtom] = atom(1); +const [dictAtom, setDict] = atom({ desc: 'helux atom', info: { born: 2023 } }); + +// 原始值读取 +console.log(numAtom.val); + +setAtom(() => Math.random()); // 回调返回最新值 +setAtom((draft) => draft + Math.random()); // 复用回调草稿返回最新值 +setAtom(Math.random()); // 直接传入最新值 + +// 对象值读取 +console.log(dictAtom.val.info.born); +// 对象值修改,修改结束后,会生成一份具有结构共享特性的新状态 +setDict((draft) => (draft.info.born = 2022)); +``` + +:::tip setAtom 回调 draft 已拆箱 + +`setAtom` 回调已对 `draft` 已做拆箱操作,如果是原始值 atom,draft 也是原始值 + +::: + +`share`接口直接受字典类型值(object),因本身就是对象,就没有`.val`装箱和拆箱操作了,其他特性和使用方式均和`atom`一样 + +```tsx +import { share } from 'helux'; + +// 传入对象 +const [sharedDict, setDict] = share({ desc: 'helux atom', info: { born: 2023 } }); +// 传入对象工厂函数 +const [sharedDict, setDict] = share(() => ({ desc: 'helux atom', info: { born: 2023 } })); + +// 读取,区别于 atom,无 .val 取值操作 +console.log(sharedDict.info.born); +// 修改直接修改草稿 +setDict((draft) => (draft.info.born = 2022)); +// 会返回整个状态的全新值 +setDict(() => aTotallyNewState); +``` + +:::tip share 优先 + +优先考虑 share 共享对象由于`share`接口没有装箱`{val: T}` 的操作,当共享对象为 `object` 时,可优先使用`share`来共享对象,避免一些无自动拆箱的场景多做一次`.val`取值操作 + +::: + +`atom` 和`share`接口返回的元组结果完整信息如下 + +```ts +// 元组返回数据可贴近实际业务场景命名 +const [numAtom, setAtom, atomCtx] = atom(1); +const [shared, setShared, sharedCtx] = share({ name: 'helux' }); + +// atomCtx.state === numAtom , atomCtx.setState === setAtom +// sharedCtx.state === shared , atomCtx.setState === setShared + +// atomCtx sharedCtx 还包含以下属性,我们此处过一下目录,后续会逐步介绍 +// mutate <-- 创建可变派生函数 +// runMutate <-- 运行指定的可变派生函数 +// runMutateTask <-- 运行指定的可变派生函数异步任务 +// action <-- 创建修改状态的动作函数 +// actionAsync <-- 创建修改状态的异步动作函数 +// call <-- 定义并呼叫一个动作函数 +// callAsync <-- 定义并呼叫一个异步动作函数 +// useState <-- 是用当前状态的钩子函数,供react组件调用 +// getMutateLoading <-- 组件外获取 mutate 可变派生函数的运行状态 +// useMutateLoading <-- 组件内使用 mutate 可变派生函数运行状态的钩子 +// getActionLoading <-- 组件外获取 action 动作函数的运行状态 +// useActionLoading <-- 组件内使用 action 动作函数运行状态的钩子 +// sync <-- 当前状态的多层级路径值的自动同步函数,通常用于表单双向绑定 +// syncer <-- 当前状态的单层级路径值的自动同步函数,通常用于表单双向绑定 +``` + +除`atom`和`share`之外,还提供一个功能完全相同的`shareAtom`和`shareState`接口,区别在于:`atom`和`share`返回元组,`shareAtom`和`shareState`返回元组第三位的共享上下文对象,上下文里的`state`和`setState`属性值即是元组的第一和第二位参数 + +```ts +import { atom, shareAtom, share, shareState } from 'helux'; + +const [numAtom, setAtom, atomCtx] = atom(1); +const atomCtx = shareAtom(1); // 返回对象就是元组结果的第三位值 + +const [state, setState, stateCtx] = share({ name: 'helux' }); +const stateCtx = shareState({ name: 'helux' }); // 返回对象就是元组结果的第三位值 +``` diff --git a/doc/docs/api/atom-and-share/loading-mode.md b/doc/docs/api/atom-and-share/loading-mode.md new file mode 100644 index 00000000..19eaecf6 --- /dev/null +++ b/doc/docs/api/atom-and-share/loading-mode.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 7 +--- + +# loading 记录位置 + +参数`loadingMode`,默认值`PRIVATE`, + +- PRIVATE helux 会为每一个共享状态同步创建一个伴生 loading 状态,该共享状态异步变化过程都会记录到此伴生 loading 状态上 + +- GLOBAL 共享状态的异步变化过程的伴生 loading 状态记录到此全局 loading 状态上,需用户自己避免 key 命名冲突问题。 + +- NONE diff --git a/doc/docs/api/atom-and-share/module-name.md b/doc/docs/api/atom-and-share/module-name.md new file mode 100644 index 00000000..fe3a8af5 --- /dev/null +++ b/doc/docs/api/atom-and-share/module-name.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 3 +--- + +# 模块名称 + +`createOptions.moduleName`用于配置模块名称 + +```ts +atom(someObj, { + moduleName: 'Price', +}); + +share(someObj, { + moduleName: 'UserInfo', +}); +``` + +`helux`内部会对所以共享对象记录一个唯一 id 标记,用户层面给每个共享对象加一个有业务含义的模块名称,后续接入`helux-plugin-devtool`时可查看到各个模块组成的状态树 + +![state-tree](https://tnfe.gtimg.com/image/akpc29z24n_1699705611085.png) + +## 模块名重复 + +如果配置的模块名重复,对`helux`内部运行并无任何影响,开发模式下`helux`会通过`alert`弹窗提示用户模块名重复,生产模式下重复的模块在传递给`helux-plugin-devtool`时会被丢弃。 diff --git a/doc/docs/api/atom-and-share/mutate.md b/doc/docs/api/atom-and-share/mutate.md new file mode 100644 index 00000000..74b31080 --- /dev/null +++ b/doc/docs/api/atom-and-share/mutate.md @@ -0,0 +1,70 @@ +--- +sidebar_position: 2 +--- + +# 可变派生 + +`createOptions.mutate`用于配置**可变派生**函数 + +```ts +atom(someObj, { + mutate: ... // 配置mutate +}) + +share(someObj, { + mutate: ... // 配置mutate +}) +``` + +更多使用方式查看[mutate](/helux/docs/api/mutate)文档 + +- [mutate 定义方式](/helux/docs/api/mutate/definition-ways) +- [同步可变派生](/helux/docs/api/mutate/sync-mutate) +- [异步可变派生](/helux/docs/api/mutate/async-mutate) + +## 配置 mutate + +### 监听其他共享对象变化 + +```ts +const [numAtom] = atom(1); + +// numAtom 变化时,计算 obj.c 值 +const [ obj ] = share({a:1, b:2, c:0}, { + mutate: (draft)=>draft.c = numAtom.val; +}) + +// numAtom 变化时,计算 plus100Atom 值 +const [ plus100Atom ] = atom(0, { + mutate: (draft)=>{draft.val = numAtom.val + 100}, +}) +``` + +### 监听自身变化 + +```ts +// a,b变化时,计算c +const [ obj ] = share({a:1, b:2, c:0}, { + mutate: { + changeA: { + deps: (state)=> [state.a, state.b], + fn:(draft,[a,b])=> {draft.c = a+b}; + } + } +}); +``` + +也可写为数组方式 + +```ts +// a,b变化时,计算c +const [ obj ] = share({a:1, b:2, c:0}, { + mutate: [ + { + deps: (state)=> [state.a, state.b], + fn:(draft,[a,b])=> {draft.c = a+b}; + desc: 'changeA', // desc 可选,描述mutate作用,建议添加,方便后期接入插件系统追溯状态变更流程 + } + ] +}); +``` diff --git a/doc/docs/api/atom-and-share/rules.md b/doc/docs/api/atom-and-share/rules.md new file mode 100644 index 00000000..a3bb7dc8 --- /dev/null +++ b/doc/docs/api/atom-and-share/rules.md @@ -0,0 +1,132 @@ +--- +sidebar_position: 4 +--- + +# 规则 + +可通过`rules`配置**依赖收集策略**、**组件重渲染策略**相关规则 + +## 依赖收集策略 + +默认情况下,对象的依赖收集的深度值为`6`,在不超过深度值的情况下,针对数组只收集到下标位置,可通过配置依赖收集规则来改变默认的收集策略 + +- `stopDepth` 控制依赖收集深度,默认`6` +- `stopArrDep` 控制数组是否只收集到下标位置,默认 `true` + +```ts +const [state, setState, ctx] = share( + { + a: { + b: { + list: [ + { name: 1, age: 2, info: { street: 'u_road' } }, + { name: 2, age: 22, info: { street: 'u_road_2' } }, + ], + }, + }, + a1: { a2: { a3: { a4: { a5: { a6: { a7: { a8: 1 } } } } } } }, + }, + { + stopDepth: 12, // 改为 12 + stopArrDep: false, // 对象里的所有数组都继续向下收集(即关闭只收集到下标位置规则) + }, +); +``` + +可针对状态某些节点设置收集规则 + +```ts +const [state, setState, ctx] = share({ ... }, { + rules: [ + // 当读取或写入 a.b.list 数据时,停止依赖收集,即依赖只记录到下标,此设定优先级高于外层的 stopArrDep + { when: state => state.a.b.list, stopDep: true }, + ], + stopArrDep: false, // 对象里的所有数组都继续向下收集(即关闭只收集到下标位置规则) +}); +``` + +## 组件重渲染策略 + +正常情况下,数据变更后 helux 会取出相关数据依赖的组件重渲染,支持用户定制额外的**组件重渲染策略** + +### ids + +配置 当 a.b.list 变化时,通知设定了 id 为 up1, up2 的组件重渲染,这些组件依赖 state 状态其他节点值,但对 state.a.b.list 无依赖。 + +```ts +const [state, setState, ctx] = share({ ... }, { + rules: [ + { when: state => state.a.b.list, ids: ['up1', 'up2']}, + ], +}); + +// 此组件依赖仅是 desc, 但配置了id 为 up1,当 state.a.b.list 变化时,会通知 Demo 示例重渲染 +function Demo(){ + const [ stateObj ] = useShared(state, { id: 'up1' }); + const { desc } = stateObj; +} +``` + +:::tip 不同的状态里 id 重复是互不影响的 + +使用方通过`useAtom`和`useShared`配置的 id 是指向所属的共享状态的,不同的共享状态配置了相同的 id 名称互不影响。 + +::: + +以下 3 种方法不通过 rules ids 也能达到此效果 + +```ts +// 使用 useWatch +function Demo() { + const [stateObj] = useShared(state); + useWatch( + () => { + // forceUpdate + }, + () => [stateObj.a.b.list], + ); +} + +// 或者单纯的使用 deps 固定住依赖 +function Demo() { + const [stateObj] = useShared(state, { deps: () => [stateObj.a.b.list] }); +} + +// 也可以组件里读一下list依赖,但啥也不做 +function Demo() { + const [stateObj] = useShared(state); + noop(stateObj.a.b.list); +} +``` + +### globalIds + +配置 当 a.b.list 变化时,通知设定了 globalId 为 up1, up2 的组件重渲染,这些组件不依赖任何共享状态 + +```ts +const [state, setState, ctx] = share({ ... }, { + rules: [ + { when: state => state.a.b.list, globalIds: ['up1', 'up2']}, + ], +}); + +// 此组件设定了 globalId 为 up1 +function Demo(){ + useGlobalId('up1'); +} +``` + +独立使用 useWatch 也能达到此效果 + +```ts +// 使用 useWatch +function Demo() { + useWatch( + () => { + // forceUpdate + // 注意此次传递的是外层的 state,而非 useAtom 导出的 stateObj + }, + () => [state.a.b.list], + ); +} +``` diff --git a/doc/docs/api/atom-and-share/shared-ctx.md b/doc/docs/api/atom-and-share/shared-ctx.md new file mode 100644 index 00000000..13f1df4e --- /dev/null +++ b/doc/docs/api/atom-and-share/shared-ctx.md @@ -0,0 +1,178 @@ +--- +sidebar_position: 2 +--- + +# 共享上下文 + +调用`atom`或`share`会返回共享上下文对象, 对象里的各个方法自动绑定了当前共享对象,让用户可以免去使用顶层 api 绑定的步骤 + +## 获取方式 + +`atom`或`share`返回的元组里第三位参数即共享上下文 + +```ts +// numCtx 即共享上下文对象 +const [numAtom, setNum, numAtomCtx] = atom(1); + +// sharedCtx 即共享上下文对象 +const [sharedState, setShared, sharedCtx] = share({ a: 1 }); +``` + +也可以使用`shareAtom` 和 `shareState` 接口直接返回共享上下文 + +```ts +const numCtx = shareAtom(1); +const sharedCtx = shareState({ a: 1 }); +``` + +## 可映射为顶层 api 的方法 + +### mutate + +`ctx.mutate` 映射顶层 api `mutate` + +```ts +import { mutate } from 'helux'; + +// 两者等效 +numAtomCtx.mutate(fn); +mutate(numAtom)(fn); +``` + +### sync & syncer + +`ctx.sync` 映射顶层 api `sync`,`ctx.syncer` 映射顶层 api `syncer` + +```ts +import { sync, syncer } from 'helux'; + +// 两者等效 +const infoSyncer = numAtomCtx.sync((to) => to.val.info.name); +const infoSyncer = sync(numAtomCtx)((to) => to.val.info.name); + +// 两者等效 +const nameSyncer = numAtomCtx.syncer.name; +const nameSyncer = syncer(numAtom).name; +``` + +```ts +// 两者等效 +const infoSyncer = sharedCtx.sync((to) => to.info.name); +const infoSyncer = sync(numAtomCtx)((to) => to.info.name); + +// 两者等效 +const nameSyncer = numAtomCtx.syncer.name; +const nameSyncer = syncer(numAtom).name; +``` + +### runMutate & runMutateTask + +`ctx.runMutate` 映射顶层 api `runMutate`,`ctx.runMutateTask` 映射顶层 api `runMutateTask` + +```ts +import { runMutate, runMutateTask } from 'helux'; + +// 两者等效 +numAtomCtx.runMutate('fnName'); +runMutate(numAtom); + +// 两者等效 +numAtomCtx.runMutateTask('fnName'); +runMutateTask(numAtom); +``` + +### aciton & acitonAsync + +`share` 返回的共享上下文里`aciton` 和 `acitonAsync` 方法对应顶层 api `aciton` 和 `acitonAsync` + +```ts +import { aciton, acitonAsync } from 'helux'; + +// 两者等效 +const myAction = sharedCtx.action(actionFnDef); +const myAction = aciton(sharedState)(actionFnDef); + +// 两者等效(异步action) +const myActionAsync = sharedCtx.acitonAsync(actionFnDef); +const myActionAsync = acitonAsync(sharedState)(actionFnDef); +``` + +`atom` 返回的共享上下文里`aciton` 和 `acitonAsync` 方法对应顶层 api `atomAciton` 和 `atomAcitonAsync` + +```ts +import { atomAciton, atomAcitonAsync } from 'helux'; + +// 两者等效 +const myAction = numAtomCtx.action(actionFnDef); +const myAction = atomAciton(numAtom)(actionFnDef); + +// 两者等效(异步action) +const myActionAsync = numAtomCtx.acitonAsync(actionFnDef); +const myActionAsync = atomAcitonAsync(numAtom)(actionFnDef); +``` + +:::tip action 和 atomAction + +因`atom`有装箱和拆箱过程,故`action`相关接口设计为了类型提示区分为`action`和`atomAction` + +::: + +### useState + +`share` 返回的共享上下文里 `useState` 方法对应顶层 api `useShared` + +```ts +import { useShared } from 'helux'; + +// 组件里使用,两者等效 +const [state, setState] = useShared(sharedState); +const [state, setState] = sharedCtx.useState(); +``` + +### getMutateLoading + +`share` 返回的共享上下文里 `getMutateLoading` 方法对应顶层 api `getMutateLoading` + +```ts +import { getMutateLoading } from 'helux'; + +// 两者等效 +const loadingObj = getMutateLoading(sharedState); +const loadingObj = sharedCtx.getMutateLoading(); +``` + +### useMutateLoading + +`share` 返回的共享上下文里 `useMutateLoading` 方法对应顶层 api `useMutateLoading` + +```ts +import { getMutateLoading } from 'helux'; + +// 组件里使用,两者等效 +const loadingObj = useMutateLoading(sharedState); +const loadingObj = sharedCtx.useMutateLoading(); +``` + +### getActionLoading + +`share` 返回的共享上下文里 `getActionLoading` 方法对应顶层 api `getActionLoading` + +```ts +import { getActionLoading } from 'helux'; + +// 两者等效 +const loadingObj = getActionLoading(sharedState); +const loadingObj = sharedCtx.getActionLoading(); +``` + +### useActionLoading + +`share` 返回的共享上下文里 `useActionLoading` 方法对应顶层 api `useActionLoading` + +```ts +import { useActionLoading } from 'helux'; + +// 组件里使用,两者等效 +const loadingObj = useActionLoading(sharedState); +const loadingObj = sharedCtx.useActionLoading(); +``` diff --git a/doc/docs/api/atom-and-share/stop-dep-arr.md b/doc/docs/api/atom-and-share/stop-dep-arr.md new file mode 100644 index 00000000..4e3cdfdd --- /dev/null +++ b/doc/docs/api/atom-and-share/stop-dep-arr.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 10 +--- + +# stopDepArr diff --git a/doc/docs/api/atom-and-share/stop-depth.md b/doc/docs/api/atom-and-share/stop-depth.md new file mode 100644 index 00000000..8dd6b6d6 --- /dev/null +++ b/doc/docs/api/atom-and-share/stop-depth.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 9 +--- + +# stopDepth diff --git a/doc/docs/api/derive/_category_.json b/doc/docs/api/derive/_category_.json new file mode 100644 index 00000000..e9b66a43 --- /dev/null +++ b/doc/docs/api/derive/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 4 +} diff --git a/doc/docs/api/derive/get-lib.md b/doc/docs/api/derive/get-lib.md new file mode 100644 index 00000000..846842f5 --- /dev/null +++ b/doc/docs/api/derive/get-lib.md @@ -0,0 +1,36 @@ +--- +sidebar_position: 2 +--- + +# getLib + +`getLib`是服务于模块使用方的接口,提前调用[preFetchLib](/docs/api/hel-micro/prefetch-lib)做预加载后,可直接获取远程模块暴露对象 + +## 基础用法 + +### 获取模块对象 + +获取第一个预加载的模块对象 + +```ts +import { getLib } from 'hel-lib-proxy'; +getLib('xxx'); +``` + +### 指定版本号 + +获取指定版本的模块对象 + +```ts +import { getLib } from 'hel-lib-proxy'; +getLib('xxx', { versionId: 'v1' }); +``` + +### 指定平台值 + +获取指定平台值的模块对象(默认值 unpkg) + +```ts +import { getLib } from 'hel-lib-proxy'; +getLib('xxx', { platform: 'myplat' }); +``` diff --git a/doc/docs/api/derive/lib-ready.md b/doc/docs/api/derive/lib-ready.md new file mode 100644 index 00000000..6988a7da --- /dev/null +++ b/doc/docs/api/derive/lib-ready.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 0 +--- + +# libReady + +`libReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露对象提供给其他项目(即远程模块的使用方),详细用法可参考[hel-tpl-remote-lib](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/index.ts)、[hel-tpl-remote-react-comp-ts](https://github.com/hel-eco/hel-tpl-remote-react-comp-ts/blob/master/src/index.tsx)、[hel-tpl-remote-vue-comp](https://github.com/hel-eco/hel-tpl-remote-vue-comp/blob/master/src/main.js)这几个项目的入口文件 + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { libReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const libProperties = await import('./entrance/libProperties'); + // 此处是否写 .default 取决于暴露语法是 export { xxx } 还是 export default xxx + libReady(LIB_NAME, libProperties.default); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +libReady('xxx', libProperties, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)接口加载该模块时,就需要指定相同的平台值才能正常拉取到该模块 + +```ts +preFetchLib('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +libReady('xxx', libProperties, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchLib('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露模块 + +```ts +libReady('xxx', libProperties, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/event/_category_.json b/doc/docs/api/event/_category_.json new file mode 100644 index 00000000..65f36c32 --- /dev/null +++ b/doc/docs/api/event/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 9 +} diff --git a/doc/docs/api/event/lib-ready.md b/doc/docs/api/event/lib-ready.md new file mode 100644 index 00000000..6988a7da --- /dev/null +++ b/doc/docs/api/event/lib-ready.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 0 +--- + +# libReady + +`libReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露对象提供给其他项目(即远程模块的使用方),详细用法可参考[hel-tpl-remote-lib](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/index.ts)、[hel-tpl-remote-react-comp-ts](https://github.com/hel-eco/hel-tpl-remote-react-comp-ts/blob/master/src/index.tsx)、[hel-tpl-remote-vue-comp](https://github.com/hel-eco/hel-tpl-remote-vue-comp/blob/master/src/main.js)这几个项目的入口文件 + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { libReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const libProperties = await import('./entrance/libProperties'); + // 此处是否写 .default 取决于暴露语法是 export { xxx } 还是 export default xxx + libReady(LIB_NAME, libProperties.default); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +libReady('xxx', libProperties, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)接口加载该模块时,就需要指定相同的平台值才能正常拉取到该模块 + +```ts +preFetchLib('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +libReady('xxx', libProperties, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchLib('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露模块 + +```ts +libReady('xxx', libProperties, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/hooks/_category_.json b/doc/docs/api/hooks/_category_.json new file mode 100644 index 00000000..c80fc5cc --- /dev/null +++ b/doc/docs/api/hooks/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 8 +} diff --git a/doc/docs/api/hooks/index.md b/doc/docs/api/hooks/index.md new file mode 100644 index 00000000..c49be49c --- /dev/null +++ b/doc/docs/api/hooks/index.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 4 +--- + +# hooks diff --git a/doc/docs/api/hooks/use-object.md b/doc/docs/api/hooks/use-object.md new file mode 100644 index 00000000..ccab2157 --- /dev/null +++ b/doc/docs/api/hooks/use-object.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 0 +--- + +# useObject diff --git a/doc/docs/api/hooks/use-service.md b/doc/docs/api/hooks/use-service.md new file mode 100644 index 00000000..4954cd3d --- /dev/null +++ b/doc/docs/api/hooks/use-service.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 2 +--- + +# useService diff --git a/doc/docs/api/hooks/use-stable.md b/doc/docs/api/hooks/use-stable.md new file mode 100644 index 00000000..2a276d7d --- /dev/null +++ b/doc/docs/api/hooks/use-stable.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 1 +--- + +# useStable diff --git a/doc/docs/api/loading/_category_.json b/doc/docs/api/loading/_category_.json new file mode 100644 index 00000000..b1387bcd --- /dev/null +++ b/doc/docs/api/loading/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 7 +} diff --git a/doc/docs/api/loading/app-ready.md b/doc/docs/api/loading/app-ready.md new file mode 100644 index 00000000..c1aa5b5c --- /dev/null +++ b/doc/docs/api/loading/app-ready.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 5 +--- + +# appReady + +`appReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露的应用根组件(react 项目、vue 项目等)提供给其他项目(即远程模块的使用方) + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { appReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const App = await import('./App'); // 项目根组件 + appReady(LIB_NAME, App); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +appReady('xxx', App, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchApp](/docs/api/hel-micro/prefetch-app)接口加载该项目根组件时,就需要指定相同的平台值才能正常拉取到 + +```ts +preFetchApp('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +appReady('xxx', App, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchApp('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露根组件 + +```ts +appReady('xxx', App, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/middleware/_category_.json b/doc/docs/api/middleware/_category_.json new file mode 100644 index 00000000..33327ebe --- /dev/null +++ b/doc/docs/api/middleware/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 12 +} diff --git a/doc/docs/api/middleware/lib-ready.md b/doc/docs/api/middleware/lib-ready.md new file mode 100644 index 00000000..6988a7da --- /dev/null +++ b/doc/docs/api/middleware/lib-ready.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 0 +--- + +# libReady + +`libReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露对象提供给其他项目(即远程模块的使用方),详细用法可参考[hel-tpl-remote-lib](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/index.ts)、[hel-tpl-remote-react-comp-ts](https://github.com/hel-eco/hel-tpl-remote-react-comp-ts/blob/master/src/index.tsx)、[hel-tpl-remote-vue-comp](https://github.com/hel-eco/hel-tpl-remote-vue-comp/blob/master/src/main.js)这几个项目的入口文件 + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { libReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const libProperties = await import('./entrance/libProperties'); + // 此处是否写 .default 取决于暴露语法是 export { xxx } 还是 export default xxx + libReady(LIB_NAME, libProperties.default); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +libReady('xxx', libProperties, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)接口加载该模块时,就需要指定相同的平台值才能正常拉取到该模块 + +```ts +preFetchLib('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +libReady('xxx', libProperties, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchLib('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露模块 + +```ts +libReady('xxx', libProperties, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/model/_category_.json b/doc/docs/api/model/_category_.json new file mode 100644 index 00000000..72fddf8f --- /dev/null +++ b/doc/docs/api/model/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 10 +} diff --git a/doc/docs/api/model/lib-ready.md b/doc/docs/api/model/lib-ready.md new file mode 100644 index 00000000..6988a7da --- /dev/null +++ b/doc/docs/api/model/lib-ready.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 0 +--- + +# libReady + +`libReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露对象提供给其他项目(即远程模块的使用方),详细用法可参考[hel-tpl-remote-lib](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/index.ts)、[hel-tpl-remote-react-comp-ts](https://github.com/hel-eco/hel-tpl-remote-react-comp-ts/blob/master/src/index.tsx)、[hel-tpl-remote-vue-comp](https://github.com/hel-eco/hel-tpl-remote-vue-comp/blob/master/src/main.js)这几个项目的入口文件 + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { libReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const libProperties = await import('./entrance/libProperties'); + // 此处是否写 .default 取决于暴露语法是 export { xxx } 还是 export default xxx + libReady(LIB_NAME, libProperties.default); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +libReady('xxx', libProperties, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)接口加载该模块时,就需要指定相同的平台值才能正常拉取到该模块 + +```ts +preFetchLib('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +libReady('xxx', libProperties, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchLib('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露模块 + +```ts +libReady('xxx', libProperties, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/mutate/_category_.json b/doc/docs/api/mutate/_category_.json new file mode 100644 index 00000000..4645dae9 --- /dev/null +++ b/doc/docs/api/mutate/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 3 +} diff --git a/doc/docs/api/mutate/async-mutate.md b/doc/docs/api/mutate/async-mutate.md new file mode 100644 index 00000000..9719b7f4 --- /dev/null +++ b/doc/docs/api/mutate/async-mutate.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 3 +--- + +# 异步可变派生 diff --git a/doc/docs/api/mutate/definition-ways.md b/doc/docs/api/mutate/definition-ways.md new file mode 100644 index 00000000..da0d2bd2 --- /dev/null +++ b/doc/docs/api/mutate/definition-ways.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 1 +--- + +# 定义方式 diff --git a/doc/docs/api/mutate/index.md b/doc/docs/api/mutate/index.md new file mode 100644 index 00000000..0dc1308b --- /dev/null +++ b/doc/docs/api/mutate/index.md @@ -0,0 +1,168 @@ +--- +sidebar_position: 0 +--- + +# mutate + +`mutate`接口用于定义**可变派生**函数,由于 `atom` 和 `share` 返回的对象天生自带依赖追踪特性,当共享对象 a 的发生变化后需要自动引起共享状态 b 的某些节点变化时,可定义 `mutate` 函数来完成这种变化的连锁反应关系,对数据做最小粒度的更新 + +## 定义方式 + +### options.mutate + +创建`share`或`atom`对象时定义 + +#### 定义一个可变派生函数 + +```ts +const [numAtom] = atom(1); + +// numAtom 变化时,计算 obj.c 值 +const [ obj ] = share({a:1, b:2, c:0}, { + mutate: (draft)=>draft.c = numAtom.val; +}) + +// numAtom 变化时,计算 plus100Atom 值 +const [ plus100Atom ] = atom(0, { + mutate: (draft)=>{draft.val = numAtom.val + 100}, +}) +``` + +#### 定义多个可变派生函数 + +字典方式定义 + +```ts +const [numAtom] = atom(1); + +// numAtom 变化时,计算 obj.c obj.b 值 +const [obj] = share( + { a: 1, b: 2, c: 0 }, + { + mutate: { + changeB: (draft) => { + draft.b = numAtom.val + 2; + }, + changeC: (draft) => { + draft.c = numAtom.val + 1; + }, + }, + }, +); + +// 此处仅为了举例,更合适的方式是合并到一起 +const [obj] = share( + { a: 1, b: 2, c: 0 }, + { + mutate: { + changeBC: (draft) => { + draft.b = numAtom.val + 2; + draft.c = numAtom.val + 1; + }, + }, + }, +); +``` + +数组方式定义,写法 1:匿名箭头函数 + +```ts +const [obj] = share( + { a: 1, b: 2, c: 0 }, + { + mutate: [ + (draft) => { + draft.b = numAtom.val + 2; + }, + (draft) => { + draft.c = numAtom.val + 1; + }, + ], + }, +); +``` + +数组方式定义,写法 2:携带`desc`的可变函数描述对象 + +```ts +const [obj] = share( + { a: 1, b: 2, c: 0 }, + { + mutate: [ + { + fn: (draft) => { + draft.b = numAtom.val + 2; + }, + desc: 'changeB', + }, + { + fn: (draft) => { + draft.c = numAtom.val + 1; + }, + desc: 'changeC', + }, + ], + }, +); +``` + +### sharedCtx.mutate + +基于`sharedCtx`返回的`mutate`接口定义 + +```diff +const [numAtom] = atom(1); + +const [ obj, setObj, sharedCtx ] = share({a:1, b:2, c:0}, +- { +- mutate: { +- changeB: (draft)=>{draft.b = numAtom.val + 2}, +- changeC: (draft)=>{draft.c = numAtom.val + 1}, +- }, +- } +); + +sharedCtx.mutate( ++ { ++ mutate: { ++ changeB: (draft)=>{draft.b = numAtom.val + 2}, ++ changeC: (draft)=>{draft.c = numAtom.val + 1}, ++ }, ++ } +) + +``` + +### topApi.mutate + +基于`helux`导出的顶层 api`mutate`定义 + +```ts +import { mutate } from ''; + +// 是一个柯里化函数,先传入需要定义mutate的共享对象,再传入具体的mutate配置 +const [obj] = mutate(shared)({ + changeB: (draft) => { + draft.b = numAtom.val + 2; + }, + changeC: (draft) => { + draft.c = numAtom.val + 1; + }, +}); +``` + +## 单个变化函数 + +只修改共享状态的单个值时,定义一个 `mutate` 函数即可 + +```ts +const [numAtom] = atom(3000); + +const [finalPriceState] = share( + { finalPrice: 0, otherInfo: { desc: 'other' } }, + { + // 当 numAtom 变化时,重计算 finalPrice 节点的值 + mutate: (draft) => (draft.finalPrice = numAtom.val - 600), + }, +); +``` diff --git a/doc/docs/api/mutate/sync-mutate.md b/doc/docs/api/mutate/sync-mutate.md new file mode 100644 index 00000000..2a4eebbf --- /dev/null +++ b/doc/docs/api/mutate/sync-mutate.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 2 +--- + +# 同步可变派生 diff --git a/doc/docs/api/plugin/_category_.json b/doc/docs/api/plugin/_category_.json new file mode 100644 index 00000000..5df88ae0 --- /dev/null +++ b/doc/docs/api/plugin/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 13 +} diff --git a/doc/docs/api/plugin/lib-ready.md b/doc/docs/api/plugin/lib-ready.md new file mode 100644 index 00000000..6988a7da --- /dev/null +++ b/doc/docs/api/plugin/lib-ready.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 0 +--- + +# libReady + +`libReady`是服务于模块提供方的接口,用于运行时将当前模块的需暴露对象提供给其他项目(即远程模块的使用方),详细用法可参考[hel-tpl-remote-lib](https://github.com/hel-eco/hel-tpl-remote-lib/blob/master/src/index.ts)、[hel-tpl-remote-react-comp-ts](https://github.com/hel-eco/hel-tpl-remote-react-comp-ts/blob/master/src/index.tsx)、[hel-tpl-remote-vue-comp](https://github.com/hel-eco/hel-tpl-remote-vue-comp/blob/master/src/main.js)这几个项目的入口文件 + +## 基本用法 + +### 暴露模块对象 + +仅指定模块组名暴露对象 + +```ts +async function main() { + const { libReady } = await import('hel-lib-proxy'); + const { LIB_NAME } = await import('./configs/subApp'); + + const libProperties = await import('./entrance/libProperties'); + // 此处是否写 .default 取决于暴露语法是 export { xxx } 还是 export default xxx + libReady(LIB_NAME, libProperties.default); +} + +main().catch(console.error); +``` + +### 指定平台值 + +暴露的模块默认属于`unpkg`平台,当用户有自定义平台时,可指定具体的平台值暴露模块 + +```ts +libReady('xxx', libProperties, { platform: 'myplat' }); +``` + +之后模块使用方使用[preFetchLib](/docs/api/hel-micro/prefetch-lib)接口加载该模块时,就需要指定相同的平台值才能正常拉取到该模块 + +```ts +preFetchLib('xxx', { platform: 'myplat' }); +``` + +### 指定版本号 + +通常情况下 sdk 会从加载当前模块的链接里推导出模块对应的版本号 + +```bash +# 以下链接会推导出版本号 1.1.3 +https://unpkg.com/hel-tpl-remote-vue-comps@1.1.3/hel_dist/hel-meta.json +``` + +当用户做一些私有化部署或有自己的版本号定义规则时,可指定版本号后暴露模块 + +```ts +libReady('xxx', libProperties, { versionId: 'v1-prerelase' }); +// 发布后使用方之后可指定对应版本号加载 +preFetchLib('xxx', { versionId: 'v1-prerelase' }); +``` + +### 指定应用名 + +初始状态下,[应用名与应用组名](docs/api/basic/glossary#应用名与应用组名)是一致的,在存在对同一套代码除了按版本这个维度之外的更多加载场景的诉求时,可指定应用名暴露模块 + +```ts +libReady('xxx', libProperties, { appName: 'xxx-dev' }); +``` diff --git a/doc/docs/api/quick-start/_category_.json b/doc/docs/api/quick-start/_category_.json new file mode 100644 index 00000000..4bd7ef07 --- /dev/null +++ b/doc/docs/api/quick-start/_category_.json @@ -0,0 +1,5 @@ +{ + "collapsible": true, + "collapsed": true, + "position": 0 +} diff --git a/doc/docs/api/quick-start/glossary.md b/doc/docs/api/quick-start/glossary.md new file mode 100644 index 00000000..2f0c4b13 --- /dev/null +++ b/doc/docs/api/quick-start/glossary.md @@ -0,0 +1,116 @@ +--- +sidebar_position: 0 +--- + +# 基础术语 + +helux 相关的基础术语解释,阅读此章节可帮助用户加深理解相关 api 重复提及的词汇 + +## 依赖收集 + +### 组件渲染依赖收集 + +`useAtom`或`useShared`返回的对象将在组件渲染期间动态收集到视图对数据的具体依赖项 + +```tsx +const [objAtom, setObjAtom] = atom({ a: 1, b: { b1: 2 }, c: 100 }); + +// 可以将修改方法置于组件外部 +function change() { + // 基于草稿修改,回调执行结束后,内部会生成一份结构共享特性的新状态 + // 当前修改只会引起下面的 Comp2 组件实例重渲染 + setObjAtom((draft) => (draft.val.b.b1 = Math.random())); +} + +function Comp1() { + const [obj] = useAtom(objAtom); + // 当前组件仅对 obj.a 有依赖 + return

obj.a {obj.a}

; +} + +function Comp2() { + const [obj] = useAtom(objAtom); + // 当前组件仅对 obj.b.b1 有依赖 + return

obj.b.b1 {obj.b.b1}

; +} +``` + +有条件语句存在时,收集到的依赖是实时变化的 + +```tsx +function Comp2() { + const [obj] = useAtom(objAtom); + // 当前组件仅对 obj.a > 1 时,依赖是 obj.a obj.b,反之则是 obj.b obj.c + return

{obj.a > 1 ? obj.b : obj.c}

; +} +``` + +### signal 依赖收集 + +使用`$`接口创建信号响应区域时,会收集到数据依赖 + +```tsx +// 收集到 h1 标签内对 numAtom 有依赖 +

{$(numAtom)}

+// 收集到 h2 标签内对 shared.a.b 有依赖 +

{$(shared.a.b)}

+``` + +使用`block`接口创建信号响应块时,会收集到数据依赖 + +```tsx +const [user] = share({ name: 'helux', age: 1 }); + +// 收集到当前块对 user.name user.age 有依赖 +const UserBlock = block(() => ( +
+ {user.name} + {user.age} +
+)); +``` + +### 可变派生依赖收集 + +通过 `mutate` 接口定义可变派生函数时,运行函数后自动搜集到依赖 + +```ts +const numAtom = atom(100); + +const witness = mutate(someObj)( + // 首次运行同步函数收集到 numAtom.val 依赖 + (draft) => { + draft.a = numAtom.val + 1; + }, +); + +const witness = mutate(someObj)({ + // 运行 deps 函数收集到 numAtom.val 依赖 + deps: () => [numAtom.val], + task: async ({ setState, input: [num] }) => { + await delay(1000); + setState((draft) => (draft.a = num + 1)); + }, +}); +``` + +### 全量派生依赖收集 + +通过 `derive` 接口定义全量派生函数时,运行函数后将自动搜集到依赖 + +```ts +const numAtom = atom(100); + +// 同步函数,运行后收集到 numAtom.val 依赖 +const result = derive(() => ({ val: numAtom.val + 100 })); + +const asyncResult = derive({ + // 运行 deps 函数收集到 numAtom.val 依赖 + deps: () => [numAtom.val], + fn: ({ input: [num] }) => num + 100, + task: async ({ input: [num] }) => { + await delay(1000); + setState((draft) => (draft.a = num + 1)); + }, +}); +``` diff --git a/doc/docs/api/quick-start/index.md b/doc/docs/api/quick-start/index.md new file mode 100644 index 00000000..5bda4349 --- /dev/null +++ b/doc/docs/api/quick-start/index.md @@ -0,0 +1,223 @@ +--- +sidebar_position: 0 +--- + +# quick start + +helux 是一个集`atom`、`signal`、`依赖收集`为一体的 react 状态库 + +## 创建共享对象 + +### atom + +`atom`支持包括原始类型在内的所有类型,但会被装箱为`{ val: any }` 结构,直接读取时需要取`.val`做拆箱操作 + +```ts +import { atom } from 'helux'; + +const [numAtom] = atom(1); +const [objAtom] = atom({ info: { born: 2023 } }); +console.log(numAtom); // numAtom: { val: 1 } +console.log(objAtom); // objAtom: { val: {info: { born: 2023 }} } +``` + +### share + +`share`支持对象类型,因本身是对象,无装箱行为,可以直接读取目标任意节点值 + +```ts +import { share } from 'helux'; + +const [sharedObj] = share({ info: { born: 2023 } }); +console.log(sharedObj); // sharedObj: {info: { born: 2023 }} +``` + +:::tip share 优先 + +优先考虑 share 共享对象由于`share`接口没有装箱`{val: T}` 的操作,当共享对象为 `object` 时,可优先使用`share`来共享对象,避免一些无自动拆箱的场景多做一次`.val`取值操作 + +::: + +## 使用共享对象 + +### hook + +基于`useShared`或`useAtom`在组件内使用共享对象,数据变更后自动通知组件重渲染 + +```tsx +import { useAtom, useShared } from 'helux'; + +function Demo() { + const [state] = useShared(sharedState); + return

hello helux shared {state.info.born}

; +} + +function Demo2() { + const [num] = useAtom(numAtom); // useAtom 返回结果已对 numAtom 自动拆箱 + return

hello helux shared {num}

; +} +``` + +:::danger useAtom 和 useShared 不可混用 + +不可将 atom 对象传给 useShared,不可将 shared 对象传给 useAtom,否则会引起运行时报错 + +::: + +### signal + +`signal`响应机制允许用户跳过`useAtom`和`useShared`直接将数据绑定到视图。 + +#### $绑定 + +使用`$`符号绑定单个原始值 + +```tsx +import { $ } from 'helux'; + +// 数据变更仅触发 $符号区域内重渲染 +

{$(numAtom)}

// 包含原始值的atom可安全绑定 +

{$(shared.b.b1)}

// 对象型需自己取到原始值绑定 +``` + +#### block 绑定 + +使用`block`创建局部响应块 + +```tsx +// UserBlock 已被 memo +const UserBlock = block(() => ( +
+ name: {user.name} + desc: {user.detail.desc} +
+)); + +// 其他地方使用 UserBlock +; +``` + +#### 混合使用 + +`block` 和 `$` 混合使用 + +```tsx +const UserBlock = block(() => ( +
+ name: {user.name} + price:

{$(numAtom)}

+
+)); +``` + +:::tip 依赖追踪 + +`helux`内部会自动对`$`或`block`节点建立起视图对数据变化的依赖关系,让 react 的渲染粒度从**组件粒度**降低到**dom 粒度**,极致缩小视图渲染范围,大幅提高应用整体渲染性能! + +::: + +## 修改共享对象 + +### setState + +使用钩子返回的 set 句柄创建修改共享对象的函数 + +```ts +const [state, setState] = useShared(sharedState); +const handelChange = () => + setState((draft) => { + draft.name = 'newName'; + }); +``` + +使用`atom`或者`share`接口返回的 set 句柄定义修改函数,将修改函数提升到组件外部 + +#### share 修改 + +修改`share`返回的共享对象 + +```ts +const [shared, setShared] = share({ info: { name: 'helux', age: 1 }, desc: 'awesome lib' }); + +// 这是一个组件外部的函数,可全局任意地方使用 +function changName(name) { + // 回调里基于草稿修改,修改结束后,生成一份新的具有结构共享特性的状态 + setShared((draft) => { + draft.info.name = name; + }); +} +``` + +#### atom 修改 + +修改`atom`返回的共享原始值 + +```ts +const [numAtom, setAtom] = atom(1); + +// 回调里返回最新值 +setAtom(() => Math.random()); +// 回调里基于草稿修改,回调里已对atom拆箱,因atom是原始值,此刻的草稿也是原始值 +setAtom((draft) => draft + Math.random()); +// 直接传入最新值修改 +setAtom(Math.random()); +``` + +修改`atom`返回的共享对象 + +```ts +const [dictAtom, setDict] = atom({ desc: 'helux atom', info: { born: 2023 } }); +// 回调里基于草稿修改 +setDict((draft) => { + draft.info.born = 2022; +}); +``` + +:::tip setAtom 回调 draft 已拆箱 + +`setAtom` 回调已对 `draft` 已做拆箱操作,如果是原始值 atom,draft 也是原始值 + +::: + +### action + +使用`action`工厂函数接口创建修改共享对象的方法 + +#### atom 同步函数 + +```ts +import { atomAction } from 'helux'; + +const normalAction = atomAction(numAtom)(({ setState, args, draft, draftRoot }) => { + const val = args[0] && Number.isInteger(args[0]) ? args[0] : random(); + // 返回新值 + return val; + + // 参考当前值返回新值 + // return draft + val; + + // 修改draftRoot + // draftRoot.val = val; +}, 'normalAction'); +normalAction(1); // 参数将透传给 args +``` + +#### atom 异步函数 + +```ts +import { atomActionAsync } from 'helux'; + +const asyncAction = atomActionAsync(numAtom)(async ({ setState, args }) => { + await delay(2000); + const val = args[0] && Number.isInteger(args[0]) ? args[0] : random(); + return val; + + // 如果 atom 定义的是对象,此处需基于草稿修改 + // setState((draft) => (draft.xx = 'new val')); + // 返回字典的话会按浅合并策略处理 + // return { xx: 'new val' }; +}, 'asyncAction'); + +// 调用 action 返回 Promise +asyncAction(1); +``` diff --git a/doc/docs/api/quick-start/overview.md b/doc/docs/api/quick-start/overview.md new file mode 100644 index 00000000..736721fa --- /dev/null +++ b/doc/docs/api/quick-start/overview.md @@ -0,0 +1,1177 @@ +--- +sidebar_position: 0 +--- + +# 特性一览 + +helux 是一个集`atom`、`signal`、`依赖收集`为一体的 react 状态库,相比`recoil`和`jotai`,它拥有以下优势 + +- 基于最快的不可变 js 库[limu](https://github.com/tnfe/limu)开发,拥有超强性能 +- atom 支持依赖收集,意味着 atom 不用拆分的很细,atom 就可以等同于 model,天然对 `DDD` 领域驱动设计友好 +- 内置 signal 响应机制,可直接将共享对象的值交给 signal 或 block 视图与数据关系的绑定,实现 0 hook 编码,实现 dom 粒度的更新 +- 内置 loading 模块,可对所有异步任务做运行状态、错误捕捉做管理 +- 支持可变派生,当共享对象 a 的发生变化后需要自动引起共享状态 b 的某些节点变化时,可定义 mutate 函数来完成这种变化的连锁反应关系,对数据做最小粒度的更新 +- 支持全量派生,不需要对数据做细粒度更新时使用全量派生更合适 +- 全量派生、可变派生均支持异步任务 +- 全量派生、可变派生除数据变更驱动执行外,还支持人工重新触发运行 +- 内置事件系统 +- 支持中间件、插件系统,可无缝对接 redux 生态相关工具库 +- 100% ts 编码,类型提示优化 + +## 状态定义 + +### share + +通过 `share` 接口创建全局共享状态,share 必须传入 普通 json 对象,返回一个只可读的代理对象,是一个全局可使用的稳定引用,可总是读取到最新值。 + +```ts +import { share } from 'helux'; + +const [sharedNum] = share({ num: 1 }); // { num: 1 } +``` + +### atom + +如需共享原始值类型的值,可通过 `atom` 接口创建全局共享状态,atom 支持传入所有类型的值,返回一个代理对象,返回结果被自动装箱为 `{ val: T }` 结构,,也是一个全局可使用的稳定引用,可总是读取到最新值,但需要多做一次`.val`取值操作 + +```ts +import { atom } from 'helux'; + +const [numAtom] = atom(1); // { va: 1 } +console.log(numAtom.val); // print: 1 +``` + +:::tip + +优先考虑 share 共享对象由于`share`接口没有装箱`{val: T}` 的操作,当共享对象为 `object` 时,可优先使用`share`来共享对象,避免一些无自动拆箱的场景多做一次`.val`取值操作 + +::: + +### 模块化标签 + +`helux` 允许用户按自己代码组织习惯存放状态,当需要中心化管理管理状态时,配置 `moduleName` 名称即可,方便后期接入开发插件按模块分类查看各个状态。 + +```ts +const [sharedNum] = share({ num: 1 }, { moduleName: 'A' }); +const [numAtom] = atom(1, { moduleName: 'B' }); +``` + +:::tip 模块名重复 + +因 `helux` 维护了一套自增 id 管理各个状态,如果模块名重复,并不会对 `helux` 本身的运行造成任何影响,只会影响状态的快照透传给开发插件时,重复的会被丢弃,查看到的状态树可能有缺失 + +::: + +## 状态使用 + +`atom` 和 `share` 返回的是一个稳定的代理对象,可全局任意地方使用并总是读取到最新值 + +### 组件内使用 + +组件内通过`useAtom`使用`atom`返回的共享对象,从而产生数据变更后重渲染的订阅行为,`useAtom`的返回值会对`atom`做自动拆箱操作 + +:::tip 自动拆箱 + +`{ val: T }` 被拆为 `T` 返回 + +::: + +```tsx +function DemoUseAtom() { + // num 是自动拆箱后返回的值 + const [num] = useAtom(numAtom); + return

{num}

; +} +``` + +通过`useShared`使用`share`返回的共享对象 + +```tsx +function DemoUseShared() { + const [obj] = useShared(sharedNum); + return

{obj.num}

; +} +``` + +除了顶层 hook api + 具体状态对象的方式使用状态,也可以使用返回的上下文对象暴露的钩子,内部自动绑定了对应的状态 + +```ts +const [shared, setShared, sharedCtx] = share({ num: 1 }); +const [numAtom, setAtom, numCtx] = atom(1, { moduleName: 'B' }); + +sharedCtx.useState(); +numCtx.useState(); +``` + +:::tip no provider + +`helux` 采用无 `Provider` 模式,用户只需要调用钩子函数`useAtom`、`useShared`即可使用共享状态 + +::: + +### 组件外使用 + +其他地方使用直接读取返回的代理对象即可,可总是获取到最新值 + +```ts +setTimeout(() => { + console.log(numAtom.val); // 注意 atom 对象这里需要自己调用 .val 拆箱来读到原始值 + console.log(numShared.num); +}, 1000); +``` + +## signal + +`signal`响应机制可以用户逃离`hook`,直接将数据绑定到视图,并建立起视图对数据变化的依赖关系,让 react 的渲染粒度从**组件粒度**降低到**dom 粒度**,极致的缩小视图渲染范围,大幅提高应用整体渲染性能! + +### signal 响应 + +使用`signal`接口绑定 atom 对象原始值到视图,原始值变化时,可直接让绑定部分产生响应并重渲染 + +```tsx +// $ 是 signal 接口的缩写,方便视图绑定数据时更方便 +import { $, atom, signal } from 'helux'; + +const [numAtom] = atom(1); + +// numAtom 变化时,仅渲染

标签内部的那一部分 +function Demo() { + return ( +
+
... very very long staic content
+

{$(numAtom)}

+

{signal(numAtom)}

+
+ ); +} +``` + +使用`signal`接口绑定 shared 对象原始值到视图 + +```tsx +const [ sharedObj ] = share({a:{a1:1}}) +// 绑定到视图里 +

{$(sharedObj.a.a1)}

+``` + +:::caution 仅支持响应原始值 + +jsx 插入 object 对象本身也是不允许的,例如 `
{obj}
` 会引起报错,所以 signal 接口`
{$(obj)}
`同样也会报错 + +::: + +:::tip signal 自动拆箱 + +atom 如 atom 对象包裹是原始值,将原始值或 atom 对象传给 signal 接口均能做出响应,`
{atom}
`和`
{atom.val}
`是等效的 + +::: + +### block 响应 + +需要同时响应一个状态或多个状态的多个值时,可以使用`block`接口创建一个块组件,该组件自动对渲染函数里用到的值建立起依赖追踪关系 + +```tsx +import { share } from 'helux'; +const [user] = share({ + name: 'helux', + detail: { desc: 'a fatanstic state lib for react like framework' }, +}); + +const UserBlock = block(() => ( +
+ name: {user.name} + desc: {user.detail.desc} +
+)); + +// 其他地方使用 UserBlock +; +``` + +block 渲染函数里可以绑定 signal 原始值响应,拆分出更细的渲染粒度 + +```tsx +// user.name 变化时渲染整理 UserBlock 组件,numAtom 变化时仅渲染插值部分节点 +const UserBlock = block(() => ( +
+ name: {user.name} + other num: {$(numAtom)} +
+)); +``` + +## 状态修改 + +### 浅层次修改 + +使用`useAtom`返回的修改句柄去修改 + +```ts +function Demo() { + const [num, setAtom] = useAtom(numAtom); + return ; +} +``` + +使用`atom`返回的修改句柄去修改,此时可将修改函数定义外定义到组件外部 + +```ts +const [numAtom, setAtom] = atom(1); +function change() { + setAtom(numAtom.val + 1); +} +function Demo() { + const [num] = useAtom(numAtom); + return ; +} +``` + +### 深层次修改 + +当对`atom`或`share`返回的对象修改时,可使用**可变数据**做修改 + +:::tip 可变数据 + +可变数据基于**最快的**不可变数据 js 库[limu](https://github.com/tnfe/limu)生成,修改结束后,会生成一份具有结构共享特性的新状态 + +::: + +```ts +const [numAtom, setAtom] = atom({ num: 1 }); // { val: { num: 1 } } +const [numState, setState] = share({ num: 1 }); // { num: 1 } + +// 基于可变数据修改生成新状态 +setAtom((draft) => { + draft.num += 1; +}); +setState((draft) => { + draft.num += 1; +}); +``` + +:::tip setAtom 回调 draft 已拆箱 + +`setAtom` 回调已对 `draft` 已做拆箱操作,如果是原始值 atom,draft 也是原始值 + +::: + +### 定义 action 修改 + +除了可以通过封装`setState` 调用达到修改状态的目的 + +```ts +const [numState, setState] = share({ num: 1 }); // { num: 1 } +function methodA(input: number) { + setState((draft) => (draft.num = input)); +} +``` + +`helux`还提供`action`工厂函数创建专用于修改状态的 action 同步或异步函数,通过 action 函数调用有 2 大好处 + +- 接入 devltool 后状态修改历史可详细追溯 + +- 异步函数可自动享受下文提到的`loading`管理能力 + +![cool loading](https://tnfe.gtimg.com/image/iu3p7105vx_1699699924785.gif) + +定义有业务含义的同步 action 并约束入参类型 + +```ts +const normalAction = atomAction(numAtom)<[number, string]>(({ setState, args, draft }) => { + const val = args[0] && Number.isInteger(args[0]) ? args[0] : random(); + return val; +}, 'normalAction'); +normalAction(1, 1); // ❌ 第二位参数将提示:类型“number”的参数不能赋给类型“string”的参数 +``` + +定义有业务含义的异步 action 并约束入参类型 + +```ts +const asyncAction = atomActionAsync(numAtom)<[number, string]>(async ({ setState, args }) => { + await delay(2000); + const val = args[0] && Number.isInteger(args[0]) ? args[0] : random(); + return val; +}, 'asyncAction'); +``` + +### 使用 sync&syncer 修改 + +`syncer` 和 `sync` 可从对象上下文获取,内部自动完成了使用对象的绑定,只有一层 json path 的对象,可以基于 `syncer` 对象获取具体的数据同步器来直接修改表单数据,达到**双向绑定**的效果! + +```tsx +const [numState, setState, { syncer }] = share({ a: 1, b: { b1: 1 } }); + +; +``` + +`syncer`会自动分享是否是事件对象,是就提取值不是就直接传值,所以也可以很方便的绑定 ui 组件库 + +```tsx + to.b.b1)} value={to.b.b1} /> + +// 对提交作拦截操作 + + {props.children} + + ); +} + +function DemoArea() { + const [demoType, setDemoType] = React.useState('remoteLib'); + const clickRadio = (e) => { + setDemoType(e.target.value); + }; + const checkedMap = {}; + ['remoteLib', 'remoteLibLazy', 'remoteReact', 'remoteVue'].forEach((item) => { + checkedMap[item] = item === demoType; + }); + + return ( +
+
+ + 远程库-预加载{' '} + + 线上预览 + + + + 远程库-懒加载 + + + 远程react组件{' '} + + 线上预览 + + + + 远程vue组件{' '} + + 线上预览 + + +
+ +
+ ); +} + +function HomepageHeader() { + const { siteConfig } = useDocusaurusContext(); + return ( +
+
+

+ {siteConfig.title} +

+

{siteConfig.tagline}

+
+ + 快速开始 - 1 min ⏱️ + +
+
+
+
+ ); +} + +export default function Home() { + const { siteConfig } = useDocusaurusContext(); + return ( + + +
+ + +
+ for index cache expried at 2023-05-31 +
+ ); +} diff --git a/doc/src/pages/index.module.css b/doc/src/pages/index.module.css new file mode 100644 index 00000000..9f71a5da --- /dev/null +++ b/doc/src/pages/index.module.css @@ -0,0 +1,23 @@ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 996px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/doc/src/pages/markdown-page.md b/doc/src/pages/markdown-page.md new file mode 100644 index 00000000..9756c5b6 --- /dev/null +++ b/doc/src/pages/markdown-page.md @@ -0,0 +1,7 @@ +--- +title: Markdown page example +--- + +# Markdown page example + +You don't need React to write simple standalone pages. diff --git a/doc/static/.nojekyll b/doc/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/doc/static/img/docusaurus.png b/doc/static/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/doc/static/img/hel.ico b/doc/static/img/hel.ico new file mode 100644 index 0000000000000000000000000000000000000000..c07ca2eef99ae038c522f5dec8569ed5c39539bf GIT binary patch literal 5453 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 DFDitf literal 0 HcmV?d00001 diff --git a/doc/static/img/home/s1.png b/doc/static/img/home/s1.png new file mode 100755 index 0000000000000000000000000000000000000000..5aecf38d176f709269af11343696479ca6cfcb66 GIT binary patch literal 62066 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ô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

}U@0+$iFO46M8b-=>6& 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 $Z5t=gbtjs4< znU6MQK3^wkFCrkQv=>s_oNwlQcDiSJnNFRA#r(}grF*`&__hJ~AV9v=m0Am{FJD@m z%*$dsD=-XO%p4YkXt5Mo63TmoX+<)vFv;E`?J|{iiK#q9EX&M1VB&?q5HsYy3giKt zg$0Z$VzV#<*5p?0ict{`5mPj1t(L&tgcxS5Jwu!ZN)zEYq7b%7;&o!#E+Sh@e1(KI zN{AaWom`X2#&({JCy|?RGpBJX&E$G+$Mn{d6QZ@9ardpR#QpZ72LbZUzxa;3=~|%U z=ObO~1zJskuFc|LX+CIk8D>eV(#mS!yf0Hbq;@`JDoaGPhXV})(SQ*gn2rTZ$P}@t zegh(yu~Nklx&l(4ISYq|L(CymZHTGi80RU4aYzY|DTQhzT#YDH*N6j@&NrE4vlL$E z5H7cgE|=M8b8+k3=rT+X&n^k=nH75CYN3-Som=aRn{U1b_w6hG3vJuTM^9MrY5)KL M07*qoM6N<$f+vAsS^xk5 literal 0 HcmV?d00001 diff --git a/doc/static/img/home/s5.png b/doc/static/img/home/s5.png new file mode 100755 index 0000000000000000000000000000000000000000..aba312fadf4991f944f5e6fe800454733d5714af GIT binary patch literal 64362 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