@modern-js/main-doc 2.69.5 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/en/{_meta.json → _nav.json} +5 -1
- package/docs/en/apis/app/commands.mdx +2 -3
- package/docs/en/apis/app/hooks/src/entry.mdx +1 -5
- package/docs/en/apis/app/hooks/src/entry.server.mdx +4 -5
- package/docs/en/apis/app/hooks/src/routes.mdx +2 -2
- package/docs/en/apis/app/runtime/_meta.json +0 -18
- package/docs/en/apis/app/runtime/bff/use-hono-context.mdx +2 -2
- package/docs/en/apis/app/runtime/router/router.mdx +1 -1
- package/docs/en/apis/app/runtime/utility/css-in-js.mdx +3 -2
- package/docs/en/community/blog/v2-release-note.mdx +0 -2
- package/docs/en/community/contributing-guide.mdx +10 -12
- package/docs/en/components/bff-upload.mdx +16 -12
- package/docs/en/components/build-output.mdx +45 -0
- package/docs/en/components/debug-app.mdx +1 -1
- package/docs/en/components/enable-bff-caution.mdx +2 -2
- package/docs/en/components/enable-bff.mdx +38 -8
- package/docs/en/components/enable-ssg.mdx +48 -0
- package/docs/en/components/entry-scan-logic.mdx +7 -0
- package/docs/en/components/init-app.mdx +40 -17
- package/docs/en/components/international/install-command.mdx +9 -0
- package/docs/en/components/international/introduce.mdx +2 -0
- package/docs/en/components/module-federation.mdx +4 -4
- package/docs/en/components/new-entry-tooltip.mdx +0 -0
- package/docs/en/components/nodeVersion.mdx +2 -6
- package/docs/en/components/prerequisites.mdx +1 -1
- package/docs/en/components/ua-polyfill.mdx +16 -12
- package/docs/en/components/upgrade-browserslist.mdx +0 -0
- package/docs/en/configure/_meta.json +7 -8
- package/docs/en/configure/app/bff/cross-project.mdx +24 -0
- package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
- package/docs/en/configure/app/dev/server.mdx +103 -0
- package/docs/en/configure/app/dev/setup-middlewares.mdx +4 -22
- package/docs/en/configure/app/html/app-icon.mdx +1 -23
- package/docs/en/configure/app/output/inline-scripts.mdx +1 -1
- package/docs/en/configure/app/output/override-browserslist.mdx +6 -4
- package/docs/en/configure/app/output/source-map.mdx +6 -3
- package/docs/en/configure/app/output/ssg.mdx +12 -43
- package/docs/en/configure/app/output/ssgByEntries.mdx +93 -0
- package/docs/en/configure/app/performance/build-cache.mdx +0 -4
- package/docs/en/configure/app/resolve/alias-strategy.mdx +14 -0
- package/docs/en/configure/app/resolve/alias.mdx +13 -0
- package/docs/en/configure/app/resolve/condition-names.mdx +18 -0
- package/docs/en/configure/app/resolve/dedupe.mdx +13 -0
- package/docs/en/configure/app/resolve/extensions.mdx +18 -0
- package/docs/en/configure/app/runtime/0-intro.mdx +2 -51
- package/docs/en/configure/app/security/check-syntax.mdx +1 -1
- package/docs/en/configure/app/server/port.mdx +1 -21
- package/docs/en/configure/app/server/rsc.mdx +30 -0
- package/docs/en/configure/app/server/ssr.mdx +20 -9
- package/docs/en/configure/app/source/decorators.mdx +4 -2
- package/docs/en/configure/app/source/entries.mdx +0 -2
- package/docs/en/configure/app/source/main-entry-name.mdx +4 -4
- package/docs/en/configure/app/source/transform-import.mdx +1 -59
- package/docs/en/configure/app/tools/bundler-chain.mdx +5 -5
- package/docs/en/configure/app/tools/css-extract.mdx +1 -1
- package/docs/en/configure/app/tools/dev-server.mdx +14 -248
- package/docs/en/configure/app/tools/html-plugin.mdx +3 -3
- package/docs/en/configure/app/tools/lightningcss-loader.mdx +0 -1
- package/docs/en/configure/app/tools/swc.mdx +1 -43
- package/docs/en/configure/app/usage.mdx +7 -17
- package/docs/en/guides/_meta.json +1 -2
- package/docs/en/guides/advanced-features/_meta.json +6 -0
- package/docs/en/guides/advanced-features/bff/cross-project.mdx +1 -7
- package/docs/en/guides/advanced-features/bff/extend-server.mdx +18 -3
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +1 -1
- package/docs/en/guides/advanced-features/bff/function.mdx +2 -6
- package/docs/en/guides/advanced-features/bff/sdk.mdx +3 -3
- package/docs/en/guides/advanced-features/build-performance.mdx +23 -26
- package/docs/en/guides/advanced-features/compatibility.mdx +53 -9
- package/docs/en/guides/advanced-features/international/_meta.json +11 -0
- package/docs/en/guides/advanced-features/international/advanced.mdx +193 -0
- package/docs/en/guides/advanced-features/international/api.mdx +400 -0
- package/docs/en/guides/advanced-features/international/basic.mdx +417 -0
- package/docs/en/guides/advanced-features/international/best-practices.mdx +135 -0
- package/docs/en/guides/advanced-features/international/configuration.mdx +437 -0
- package/docs/en/guides/advanced-features/international/locale-detection.mdx +276 -0
- package/docs/en/guides/advanced-features/international/quick-start.mdx +154 -0
- package/docs/en/guides/advanced-features/international/resource-loading.mdx +417 -0
- package/docs/en/guides/advanced-features/international/routing.mdx +212 -0
- package/docs/en/guides/advanced-features/international.mdx +37 -0
- package/docs/en/guides/advanced-features/low-level.mdx +21 -16
- package/docs/en/guides/advanced-features/page-performance/code-split.mdx +4 -4
- package/docs/en/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
- package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +7 -21
- package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +1 -8
- package/docs/en/guides/advanced-features/rspack-start.mdx +2 -22
- package/docs/en/guides/advanced-features/server-monitor/logger.mdx +0 -4
- package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +62 -34
- package/docs/en/guides/advanced-features/web-server.mdx +82 -299
- package/docs/en/guides/basic-features/_meta.json +6 -1
- package/docs/en/guides/basic-features/css/css-in-js.mdx +46 -11
- package/docs/en/guides/basic-features/css/css-modules.mdx +5 -17
- package/docs/en/guides/basic-features/css/css.mdx +3 -3
- package/docs/en/guides/basic-features/css/tailwindcss.mdx +5 -89
- package/docs/en/guides/basic-features/data/data-cache.mdx +5 -1
- package/docs/en/guides/basic-features/data/data-fetch.mdx +4 -4
- package/docs/en/guides/basic-features/data/data-write.mdx +2 -2
- package/docs/en/guides/basic-features/debug/mock.mdx +4 -1
- package/docs/en/guides/basic-features/debug/proxy.mdx +0 -8
- package/docs/en/guides/basic-features/debug/rsdoctor.mdx +5 -5
- package/docs/en/guides/basic-features/deploy.mdx +25 -18
- package/docs/en/guides/basic-features/env-vars.mdx +1 -1
- package/docs/en/guides/basic-features/html.mdx +1 -1
- package/docs/en/guides/basic-features/output-files.mdx +3 -3
- package/docs/en/guides/basic-features/render/_meta.json +1 -1
- package/docs/en/guides/basic-features/render/before-render.mdx +16 -23
- package/docs/en/guides/basic-features/render/overview.mdx +51 -0
- package/docs/en/guides/basic-features/render/rsc.mdx +394 -0
- package/docs/en/guides/basic-features/render/ssg.mdx +26 -62
- package/docs/en/guides/basic-features/render/ssr-cache.mdx +6 -6
- package/docs/en/guides/basic-features/render/ssr.mdx +31 -31
- package/docs/en/guides/basic-features/render/streaming-ssr.mdx +29 -9
- package/docs/en/guides/basic-features/routes/_meta.json +1 -0
- package/docs/en/guides/basic-features/routes/config-routes.mdx +427 -0
- package/docs/en/guides/basic-features/{routes.mdx → routes/routes.mdx} +7 -110
- package/docs/en/guides/basic-features/static-assets/json-files.mdx +21 -3
- package/docs/en/guides/basic-features/static-assets.mdx +2 -2
- package/docs/en/guides/concept/builder.mdx +24 -9
- package/docs/en/guides/concept/entries.mdx +139 -147
- package/docs/en/guides/get-started/glossary.mdx +0 -18
- package/docs/en/guides/get-started/introduction.mdx +1 -4
- package/docs/en/guides/get-started/quick-start.mdx +8 -73
- package/docs/en/guides/get-started/tech-stack.mdx +7 -25
- package/docs/en/guides/get-started/upgrade.mdx +30 -23
- package/docs/en/guides/topic-detail/_meta.json +0 -12
- package/docs/en/guides/topic-detail/module-federation/_meta.json +1 -1
- package/docs/en/guides/topic-detail/module-federation/application.mdx +16 -15
- package/docs/en/guides/topic-detail/module-federation/i18n.mdx +670 -0
- package/docs/en/guides/topic-detail/module-federation/introduce.mdx +5 -4
- package/docs/en/guides/topic-detail/module-federation/ssr.mdx +50 -2
- package/docs/en/guides/topic-detail/module-federation/usage.mdx +10 -30
- package/docs/en/guides/troubleshooting/builder.mdx +3 -82
- package/docs/en/guides/troubleshooting/cli.mdx +6 -30
- package/docs/en/guides/troubleshooting/dependencies.mdx +22 -22
- package/docs/en/plugin/cli-plugins/api.mdx +4 -5
- package/docs/en/plugin/cli-plugins/migration.mdx +33 -48
- package/docs/en/plugin/introduction.mdx +39 -27
- package/docs/en/plugin/official/_meta.json +0 -5
- package/docs/en/plugin/official/cli-plugins/_meta.json +1 -1
- package/docs/en/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
- package/docs/en/plugin/official/cli-plugins.mdx +0 -2
- package/docs/en/plugin/plugin-system.mdx +68 -61
- package/docs/en/plugin/runtime-plugins/api.mdx +62 -59
- package/docs/en/plugin/runtime-plugins/migration.mdx +29 -20
- package/docs/en/tutorials/_meta.json +0 -10
- package/docs/en/tutorials/examples/csr-auth.mdx +1 -1
- package/docs/en/tutorials/foundations/introduction.mdx +9 -25
- package/docs/zh/{_meta.json → _nav.json} +10 -6
- package/docs/zh/apis/app/commands.mdx +2 -3
- package/docs/zh/apis/app/hooks/src/entry.mdx +1 -5
- package/docs/zh/apis/app/hooks/src/entry.server.mdx +4 -5
- package/docs/zh/apis/app/hooks/src/routes.mdx +2 -2
- package/docs/zh/apis/app/runtime/_meta.json +0 -18
- package/docs/zh/apis/app/runtime/bff/use-hono-context.mdx +2 -2
- package/docs/zh/apis/app/runtime/utility/css-in-js.mdx +3 -2
- package/docs/zh/community/blog/v2-release-note.mdx +0 -2
- package/docs/zh/community/contributing-guide.mdx +10 -12
- package/docs/zh/components/auto-upgrade.mdx +0 -0
- package/docs/zh/components/bff-upload.mdx +8 -5
- package/docs/zh/components/build-output.mdx +45 -0
- package/docs/zh/components/debug-app.mdx +1 -1
- package/docs/zh/components/enable-bff-caution.mdx +1 -1
- package/docs/zh/components/enable-bff.mdx +37 -8
- package/docs/zh/components/enable-ssg.mdx +47 -0
- package/docs/zh/components/entry-scan-logic.mdx +7 -0
- package/docs/zh/components/init-app.mdx +40 -18
- package/docs/zh/components/international/install-command.mdx +8 -0
- package/docs/zh/components/international/introduce.mdx +2 -0
- package/docs/zh/components/international/platform-support.mdx +0 -0
- package/docs/zh/components/module-federation.mdx +4 -4
- package/docs/zh/components/new-entry-tooltip.mdx +0 -0
- package/docs/zh/components/nodeVersion.mdx +3 -7
- package/docs/zh/components/prerequisites.mdx +1 -1
- package/docs/zh/components/self-route-example.mdx +3 -3
- package/docs/zh/components/ua-polyfill.mdx +11 -6
- package/docs/zh/components/upgrade-browserslist.mdx +0 -0
- package/docs/zh/configure/_meta.json +7 -8
- package/docs/zh/configure/app/bff/cross-project.mdx +24 -0
- package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
- package/docs/zh/configure/app/dev/server.mdx +104 -0
- package/docs/zh/configure/app/dev/setup-middlewares.mdx +4 -23
- package/docs/zh/configure/app/html/app-icon.mdx +1 -23
- package/docs/zh/configure/app/output/inline-scripts.mdx +1 -1
- package/docs/zh/configure/app/output/override-browserslist.mdx +3 -3
- package/docs/zh/configure/app/output/source-map.mdx +10 -3
- package/docs/zh/configure/app/output/ssg.mdx +13 -45
- package/docs/zh/configure/app/output/ssgByEntries.mdx +94 -0
- package/docs/zh/configure/app/performance/build-cache.mdx +0 -4
- package/docs/zh/configure/app/resolve/alias-strategy.mdx +14 -0
- package/docs/zh/configure/app/resolve/alias.mdx +13 -0
- package/docs/zh/configure/app/resolve/condition-names.mdx +18 -0
- package/docs/zh/configure/app/resolve/dedupe.mdx +14 -0
- package/docs/zh/configure/app/resolve/extensions.mdx +18 -0
- package/docs/zh/configure/app/runtime/0-intro.mdx +2 -53
- package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
- package/docs/zh/configure/app/server/port.mdx +2 -21
- package/docs/zh/configure/app/server/rsc.mdx +30 -0
- package/docs/zh/configure/app/server/ssr.mdx +21 -11
- package/docs/zh/configure/app/source/decorators.mdx +4 -4
- package/docs/zh/configure/app/source/entries.mdx +0 -2
- package/docs/zh/configure/app/source/main-entry-name.mdx +4 -4
- package/docs/zh/configure/app/source/transform-import.mdx +1 -59
- package/docs/zh/configure/app/tools/bundler-chain.mdx +6 -6
- package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
- package/docs/zh/configure/app/tools/dev-server.mdx +14 -248
- package/docs/zh/configure/app/tools/html-plugin.mdx +3 -2
- package/docs/zh/configure/app/tools/lightningcss-loader.mdx +0 -1
- package/docs/zh/configure/app/tools/swc.mdx +1 -43
- package/docs/zh/configure/app/usage.mdx +8 -18
- package/docs/zh/guides/_meta.json +5 -1
- package/docs/zh/guides/advanced-features/_meta.json +6 -1
- package/docs/zh/guides/advanced-features/bff/cross-project.mdx +8 -16
- package/docs/zh/guides/advanced-features/bff/extend-server.mdx +25 -8
- package/docs/zh/guides/advanced-features/bff/frameworks.mdx +1 -1
- package/docs/zh/guides/advanced-features/bff/function.mdx +7 -12
- package/docs/zh/guides/advanced-features/bff/sdk.mdx +4 -4
- package/docs/zh/guides/advanced-features/build-performance.mdx +23 -30
- package/docs/zh/guides/advanced-features/compatibility.mdx +44 -0
- package/docs/zh/guides/advanced-features/international/_meta.json +11 -0
- package/docs/zh/guides/advanced-features/international/advanced.mdx +193 -0
- package/docs/zh/guides/advanced-features/international/api.mdx +400 -0
- package/docs/zh/guides/advanced-features/international/basic.mdx +416 -0
- package/docs/zh/guides/advanced-features/international/best-practices.mdx +135 -0
- package/docs/zh/guides/advanced-features/international/configuration.mdx +441 -0
- package/docs/zh/guides/advanced-features/international/locale-detection.mdx +304 -0
- package/docs/zh/guides/advanced-features/international/quick-start.mdx +149 -0
- package/docs/zh/guides/advanced-features/international/resource-loading.mdx +417 -0
- package/docs/zh/guides/advanced-features/international/routing.mdx +212 -0
- package/docs/zh/guides/advanced-features/international.mdx +36 -0
- package/docs/zh/guides/advanced-features/low-level.mdx +21 -16
- package/docs/zh/guides/advanced-features/page-performance/code-split.mdx +3 -3
- package/docs/zh/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
- package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +7 -21
- package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +1 -8
- package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +0 -4
- package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +63 -35
- package/docs/zh/guides/advanced-features/web-server.mdx +79 -300
- package/docs/zh/guides/basic-features/_meta.json +6 -1
- package/docs/zh/guides/basic-features/css/css-in-js.mdx +40 -5
- package/docs/zh/guides/basic-features/css/css-modules.mdx +6 -17
- package/docs/zh/guides/basic-features/css/css.mdx +2 -2
- package/docs/zh/guides/basic-features/css/tailwindcss.mdx +6 -90
- package/docs/zh/guides/basic-features/data/data-cache.mdx +8 -5
- package/docs/zh/guides/basic-features/data/data-fetch.mdx +6 -5
- package/docs/zh/guides/basic-features/data/data-write.mdx +4 -4
- package/docs/zh/guides/basic-features/debug/mock.mdx +4 -1
- package/docs/zh/guides/basic-features/debug/proxy.mdx +0 -8
- package/docs/zh/guides/basic-features/debug/rsdoctor.mdx +6 -6
- package/docs/zh/guides/basic-features/deploy.mdx +24 -20
- package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
- package/docs/zh/guides/basic-features/html.mdx +2 -2
- package/docs/zh/guides/basic-features/output-files.mdx +3 -3
- package/docs/zh/guides/basic-features/render/_meta.json +1 -1
- package/docs/zh/guides/basic-features/render/before-render.mdx +17 -24
- package/docs/zh/guides/basic-features/render/overview.mdx +52 -0
- package/docs/zh/guides/basic-features/render/rsc.mdx +413 -0
- package/docs/zh/guides/basic-features/render/ssg.mdx +27 -69
- package/docs/zh/guides/basic-features/render/ssr-cache.mdx +5 -5
- package/docs/zh/guides/basic-features/render/ssr.mdx +34 -31
- package/docs/zh/guides/basic-features/render/streaming-ssr.mdx +34 -14
- package/docs/zh/guides/basic-features/routes/_meta.json +1 -0
- package/docs/zh/guides/basic-features/routes/config-routes.mdx +426 -0
- package/docs/zh/guides/basic-features/{routes.mdx → routes/routes.mdx} +8 -114
- package/docs/zh/guides/basic-features/static-assets/json-files.mdx +21 -3
- package/docs/zh/guides/basic-features/static-assets.mdx +2 -2
- package/docs/zh/guides/basic-features/testing/cypress.mdx +5 -5
- package/docs/zh/guides/basic-features/testing/jest.mdx +12 -12
- package/docs/zh/guides/concept/builder.mdx +24 -9
- package/docs/zh/guides/concept/entries.mdx +95 -92
- package/docs/zh/guides/get-started/glossary.mdx +0 -18
- package/docs/zh/guides/get-started/introduction.mdx +1 -5
- package/docs/zh/guides/get-started/quick-start.mdx +5 -72
- package/docs/zh/guides/get-started/tech-stack.mdx +8 -26
- package/docs/zh/guides/get-started/upgrade.mdx +30 -23
- package/docs/zh/guides/topic-detail/_meta.json +0 -12
- package/docs/zh/guides/topic-detail/module-federation/_meta.json +1 -1
- package/docs/zh/guides/topic-detail/module-federation/application.mdx +18 -16
- package/docs/zh/guides/topic-detail/module-federation/i18n.mdx +623 -0
- package/docs/zh/guides/topic-detail/module-federation/introduce.mdx +4 -4
- package/docs/zh/guides/topic-detail/module-federation/ssr.mdx +51 -5
- package/docs/zh/guides/topic-detail/module-federation/usage.mdx +11 -32
- package/docs/zh/guides/troubleshooting/builder.mdx +3 -84
- package/docs/zh/guides/troubleshooting/cli.mdx +6 -30
- package/docs/zh/guides/troubleshooting/dependencies.mdx +23 -23
- package/docs/zh/guides/upgrade/_meta.json +1 -0
- package/docs/zh/guides/upgrade/config.mdx +809 -0
- package/docs/zh/guides/upgrade/entry.mdx +463 -0
- package/docs/zh/guides/upgrade/other.md +90 -0
- package/docs/zh/guides/upgrade/overview.mdx +36 -0
- package/docs/zh/guides/upgrade/tailwindcss.mdx +130 -0
- package/docs/zh/guides/upgrade/web-server.md +93 -0
- package/docs/zh/plugin/cli-plugins/api.mdx +4 -5
- package/docs/zh/plugin/cli-plugins/migration.mdx +30 -45
- package/docs/zh/plugin/introduction.mdx +36 -24
- package/docs/zh/plugin/official/_meta.json +0 -5
- package/docs/zh/plugin/official/cli-plugins/_meta.json +1 -1
- package/docs/zh/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
- package/docs/zh/plugin/official/cli-plugins.mdx +0 -2
- package/docs/zh/plugin/plugin-system.mdx +45 -42
- package/docs/zh/plugin/runtime-plugins/api.mdx +58 -56
- package/docs/zh/plugin/runtime-plugins/migration.mdx +26 -17
- package/docs/zh/tutorials/_meta.json +0 -10
- package/docs/zh/tutorials/examples/csr-auth.mdx +1 -1
- package/docs/zh/tutorials/foundations/introduction.mdx +8 -25
- package/i18n.json +0 -16
- package/package.json +12 -12
- package/rspress.config.ts +5 -8
- package/src/components/ContentCard/index.module.scss +11 -7
- package/src/components/ContentCard/index.tsx +1 -1
- package/src/components/FeatureLayout/index.module.css +1 -1
- package/src/components/Footer/index.tsx +2 -14
- package/src/components/Footer/styles.module.scss +5 -5
- package/src/components/ListCard/index.tsx +1 -1
- package/src/components/RandomMemberList/index.tsx +1 -1
- package/src/components/RsbuildLink/index.tsx +1 -1
- package/src/components/Sandpack/index.tsx +1 -1
- package/src/custom.scss +15 -0
- package/src/i18n/enUS.ts +2 -4
- package/src/i18n/index.ts +1 -1
- package/src/i18n/zhCN.ts +2 -4
- package/src/index.ts +2 -1
- package/src/pages/index.module.scss +59 -41
- package/src/pages/index.tsx +9 -24
- package/docs/en/apis/app/hooks/server/index_.mdx +0 -10
- package/docs/en/apis/app/hooks/src/index_.mdx +0 -38
- package/docs/en/apis/app/hooks/src/stories.mdx +0 -16
- package/docs/en/apis/app/runtime/app/define-config.mdx +0 -67
- package/docs/en/apis/app/runtime/core/bootstrap.mdx +0 -74
- package/docs/en/apis/app/runtime/core/create-app.mdx +0 -49
- package/docs/en/apis/app/runtime/core/use-loader.mdx +0 -89
- package/docs/en/apis/app/runtime/core/use-module-apps.mdx +0 -140
- package/docs/en/apis/app/runtime/core/use-runtime-context.mdx +0 -116
- package/docs/en/apis/app/runtime/model/Provider.mdx +0 -36
- package/docs/en/apis/app/runtime/model/auto-actions.mdx +0 -122
- package/docs/en/apis/app/runtime/model/connect.mdx +0 -146
- package/docs/en/apis/app/runtime/model/create-app.mdx +0 -75
- package/docs/en/apis/app/runtime/model/create-store.mdx +0 -61
- package/docs/en/apis/app/runtime/model/handle-effect.mdx +0 -107
- package/docs/en/apis/app/runtime/model/model_.mdx +0 -198
- package/docs/en/apis/app/runtime/model/use-local-model.mdx +0 -29
- package/docs/en/apis/app/runtime/model/use-model.mdx +0 -89
- package/docs/en/apis/app/runtime/model/use-static-model.mdx +0 -51
- package/docs/en/apis/app/runtime/model/use-store.mdx +0 -26
- package/docs/en/apis/app/runtime/ssr/pre-render.mdx +0 -96
- package/docs/en/apis/app/runtime/web-server/hook.mdx +0 -134
- package/docs/en/apis/app/runtime/web-server/middleware.mdx +0 -113
- package/docs/en/apis/app/runtime/web-server/unstable_middleware.mdx +0 -167
- package/docs/en/components/bff-proxy-path-rewrite.mdx +0 -16
- package/docs/en/components/bff-proxy-principle.mdx +0 -1
- package/docs/en/components/builder.mdx +0 -3
- package/docs/en/components/create-bff-api-app.mdx +0 -25
- package/docs/en/components/custom-router-micro-frontend.mdx +0 -40
- package/docs/en/components/enable-micro-frontend.mdx +0 -30
- package/docs/en/components/enableSwc.mdx +0 -17
- package/docs/en/components/global-proxy-config.mdx +0 -85
- package/docs/en/components/global-proxy.mdx +0 -29
- package/docs/en/components/package-manager.mdx +0 -11
- package/docs/en/components/reduck-notify.mdx +0 -27
- package/docs/en/components/reduck-tip.mdx +0 -8
- package/docs/en/configure/app/auto-load-plugin.mdx +0 -66
- package/docs/en/configure/app/deploy/microFrontend.mdx +0 -53
- package/docs/en/configure/app/dev/port.mdx +0 -25
- package/docs/en/configure/app/dev/proxy.mdx +0 -9
- package/docs/en/configure/app/experiments/lazy-compilation.mdx +0 -106
- package/docs/en/configure/app/html/disable-html-folder.mdx +0 -46
- package/docs/en/configure/app/html/favicon-by-entries.mdx +0 -36
- package/docs/en/configure/app/html/inject-by-entries.mdx +0 -36
- package/docs/en/configure/app/html/meta-by-entries.mdx +0 -48
- package/docs/en/configure/app/html/tags-by-entries.mdx +0 -44
- package/docs/en/configure/app/html/template-by-entries.mdx +0 -33
- package/docs/en/configure/app/html/template-parameters-by-entries.mdx +0 -35
- package/docs/en/configure/app/html/title-by-entries.mdx +0 -37
- package/docs/en/configure/app/output/css-module-local-ident-name.mdx +0 -21
- package/docs/en/configure/app/output/disable-css-extract.mdx +0 -16
- package/docs/en/configure/app/output/disable-filename-hash.mdx +0 -16
- package/docs/en/configure/app/output/disable-minimize.mdx +0 -14
- package/docs/en/configure/app/output/disable-node-polyfill.mdx +0 -22
- package/docs/en/configure/app/output/disable-source-map.mdx +0 -31
- package/docs/en/configure/app/output/enable-asset-fallback.mdx +0 -36
- package/docs/en/configure/app/output/enable-inline-scripts.mdx +0 -22
- package/docs/en/configure/app/output/enable-inline-styles.mdx +0 -22
- package/docs/en/configure/app/output/enable-latest-decorators.mdx +0 -14
- package/docs/en/configure/app/performance/transform-lodash.mdx +0 -52
- package/docs/en/configure/app/runtime/master-app.mdx +0 -36
- package/docs/en/configure/app/runtime/state.mdx +0 -52
- package/docs/en/configure/app/source/disable-entry-dirs.mdx +0 -38
- package/docs/en/configure/app/source/enable-custom-entry.mdx +0 -68
- package/docs/en/configure/app/source/module-scopes.mdx +0 -72
- package/docs/en/configure/app/source/resolve-extension-prefix.mdx +0 -55
- package/docs/en/configure/app/source/resolve-main-fields.mdx +0 -46
- package/docs/en/configure/app/tools/esbuild.mdx +0 -44
- package/docs/en/configure/app/tools/pug.mdx +0 -54
- package/docs/en/configure/app/tools/styled-components.mdx +0 -55
- package/docs/en/configure/app/tools/tailwindcss.mdx +0 -98
- package/docs/en/configure/app/tools/terser.mdx +0 -58
- package/docs/en/configure/app/tools/ts-loader.mdx +0 -76
- package/docs/en/configure/app/tools/webpack-chain.mdx +0 -249
- package/docs/en/configure/app/tools/webpack.mdx +0 -305
- package/docs/en/guides/deprecated.md +0 -17
- package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -27
- package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +0 -290
- package/docs/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -298
- package/docs/en/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
- package/docs/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -26
- package/docs/en/guides/topic-detail/model/_meta.json +0 -14
- package/docs/en/guides/topic-detail/model/auto-actions.mdx +0 -85
- package/docs/en/guides/topic-detail/model/computed-state.mdx +0 -148
- package/docs/en/guides/topic-detail/model/define-model.mdx +0 -62
- package/docs/en/guides/topic-detail/model/faq.mdx +0 -35
- package/docs/en/guides/topic-detail/model/manage-effects.mdx +0 -247
- package/docs/en/guides/topic-detail/model/model-communicate.mdx +0 -217
- package/docs/en/guides/topic-detail/model/performance.mdx +0 -167
- package/docs/en/guides/topic-detail/model/quick-start.mdx +0 -117
- package/docs/en/guides/topic-detail/model/redux-integration.mdx +0 -20
- package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +0 -68
- package/docs/en/guides/topic-detail/model/use-model.mdx +0 -243
- package/docs/en/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
- package/docs/en/plugin/official/cli-plugins/plugin-swc.mdx +0 -363
- package/docs/en/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
- package/docs/en/plugin/official/rsbuild-plugins/_meta.json +0 -1
- package/docs/en/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -205
- package/docs/en/plugin/official/rsbuild-plugins.mdx +0 -3
- package/docs/en/tutorials/first-app/c01-start.mdx +0 -99
- package/docs/en/tutorials/first-app/c02-component.mdx +0 -60
- package/docs/en/tutorials/first-app/c03-css.mdx +0 -324
- package/docs/en/tutorials/first-app/c04-routes.mdx +0 -172
- package/docs/en/tutorials/first-app/c05-loader.mdx +0 -87
- package/docs/en/tutorials/first-app/c06-model.mdx +0 -278
- package/docs/en/tutorials/first-app/c07-container.mdx +0 -281
- package/docs/en/tutorials/first-app/c08-entries.mdx +0 -135
- package/docs/zh/apis/app/hooks/server/index_.mdx +0 -10
- package/docs/zh/apis/app/hooks/src/index_.mdx +0 -39
- package/docs/zh/apis/app/hooks/src/stories.mdx +0 -16
- package/docs/zh/apis/app/runtime/app/define-config.mdx +0 -67
- package/docs/zh/apis/app/runtime/core/bootstrap.mdx +0 -74
- package/docs/zh/apis/app/runtime/core/create-app.mdx +0 -35
- package/docs/zh/apis/app/runtime/core/use-loader.mdx +0 -89
- package/docs/zh/apis/app/runtime/core/use-module-apps.mdx +0 -179
- package/docs/zh/apis/app/runtime/core/use-runtime-context.mdx +0 -116
- package/docs/zh/apis/app/runtime/model/Provider.mdx +0 -36
- package/docs/zh/apis/app/runtime/model/auto-actions.mdx +0 -122
- package/docs/zh/apis/app/runtime/model/connect.mdx +0 -143
- package/docs/zh/apis/app/runtime/model/create-app.mdx +0 -75
- package/docs/zh/apis/app/runtime/model/create-store.mdx +0 -61
- package/docs/zh/apis/app/runtime/model/handle-effect.mdx +0 -108
- package/docs/zh/apis/app/runtime/model/model_.mdx +0 -201
- package/docs/zh/apis/app/runtime/model/use-local-model.mdx +0 -29
- package/docs/zh/apis/app/runtime/model/use-model.mdx +0 -89
- package/docs/zh/apis/app/runtime/model/use-static-model.mdx +0 -49
- package/docs/zh/apis/app/runtime/model/use-store.mdx +0 -26
- package/docs/zh/apis/app/runtime/ssr/pre-render.mdx +0 -96
- package/docs/zh/apis/app/runtime/web-server/hook.mdx +0 -136
- package/docs/zh/apis/app/runtime/web-server/middleware.mdx +0 -114
- package/docs/zh/apis/app/runtime/web-server/unstable_middleware.mdx +0 -165
- package/docs/zh/components/bff-proxy-path-rewrite.mdx +0 -16
- package/docs/zh/components/bff-proxy-principle.mdx +0 -1
- package/docs/zh/components/builder.mdx +0 -3
- package/docs/zh/components/create-bff-api-app.mdx +0 -25
- package/docs/zh/components/custom-router-micro-frontend.mdx +0 -40
- package/docs/zh/components/enable-micro-frontend.mdx +0 -30
- package/docs/zh/components/enableSwc.mdx +0 -17
- package/docs/zh/components/global-proxy-config.mdx +0 -85
- package/docs/zh/components/global-proxy.mdx +0 -29
- package/docs/zh/components/package-manager.mdx +0 -11
- package/docs/zh/components/reduck-notify.mdx +0 -27
- package/docs/zh/components/reduck-tip.mdx +0 -8
- package/docs/zh/configure/app/auto-load-plugin.mdx +0 -66
- package/docs/zh/configure/app/deploy/microFrontend.mdx +0 -55
- package/docs/zh/configure/app/dev/port.mdx +0 -25
- package/docs/zh/configure/app/dev/proxy.mdx +0 -9
- package/docs/zh/configure/app/experiments/lazy-compilation.mdx +0 -105
- package/docs/zh/configure/app/html/disable-html-folder.mdx +0 -45
- package/docs/zh/configure/app/html/favicon-by-entries.mdx +0 -37
- package/docs/zh/configure/app/html/inject-by-entries.mdx +0 -37
- package/docs/zh/configure/app/html/meta-by-entries.mdx +0 -48
- package/docs/zh/configure/app/html/tags-by-entries.mdx +0 -44
- package/docs/zh/configure/app/html/template-by-entries.mdx +0 -33
- package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +0 -36
- package/docs/zh/configure/app/html/title-by-entries.mdx +0 -37
- package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +0 -21
- package/docs/zh/configure/app/output/disable-css-extract.mdx +0 -16
- package/docs/zh/configure/app/output/disable-filename-hash.mdx +0 -16
- package/docs/zh/configure/app/output/disable-minimize.mdx +0 -14
- package/docs/zh/configure/app/output/disable-node-polyfill.mdx +0 -22
- package/docs/zh/configure/app/output/disable-source-map.mdx +0 -31
- package/docs/zh/configure/app/output/enable-asset-fallback.mdx +0 -36
- package/docs/zh/configure/app/output/enable-inline-scripts.mdx +0 -22
- package/docs/zh/configure/app/output/enable-inline-styles.mdx +0 -22
- package/docs/zh/configure/app/output/enable-latest-decorators.mdx +0 -14
- package/docs/zh/configure/app/performance/transform-lodash.mdx +0 -52
- package/docs/zh/configure/app/runtime/master-app.mdx +0 -38
- package/docs/zh/configure/app/runtime/state.mdx +0 -52
- package/docs/zh/configure/app/source/disable-entry-dirs.mdx +0 -38
- package/docs/zh/configure/app/source/enable-custom-entry.mdx +0 -67
- package/docs/zh/configure/app/source/module-scopes.mdx +0 -72
- package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +0 -57
- package/docs/zh/configure/app/source/resolve-main-fields.mdx +0 -46
- package/docs/zh/configure/app/tools/esbuild.mdx +0 -44
- package/docs/zh/configure/app/tools/pug.mdx +0 -54
- package/docs/zh/configure/app/tools/styled-components.mdx +0 -54
- package/docs/zh/configure/app/tools/tailwindcss.mdx +0 -98
- package/docs/zh/configure/app/tools/terser.mdx +0 -58
- package/docs/zh/configure/app/tools/ts-loader.mdx +0 -76
- package/docs/zh/configure/app/tools/webpack-chain.mdx +0 -253
- package/docs/zh/configure/app/tools/webpack.mdx +0 -305
- package/docs/zh/guides/advanced-features/rspack-start.mdx +0 -154
- package/docs/zh/guides/deprecated.md +0 -19
- package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -26
- package/docs/zh/guides/topic-detail/micro-frontend/c02-development.mdx +0 -332
- package/docs/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -296
- package/docs/zh/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
- package/docs/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -27
- package/docs/zh/guides/topic-detail/model/_meta.json +0 -14
- package/docs/zh/guides/topic-detail/model/auto-actions.mdx +0 -88
- package/docs/zh/guides/topic-detail/model/computed-state.mdx +0 -147
- package/docs/zh/guides/topic-detail/model/define-model.mdx +0 -63
- package/docs/zh/guides/topic-detail/model/faq.mdx +0 -36
- package/docs/zh/guides/topic-detail/model/manage-effects.mdx +0 -256
- package/docs/zh/guides/topic-detail/model/model-communicate.mdx +0 -217
- package/docs/zh/guides/topic-detail/model/performance.mdx +0 -167
- package/docs/zh/guides/topic-detail/model/quick-start.mdx +0 -117
- package/docs/zh/guides/topic-detail/model/redux-integration.mdx +0 -20
- package/docs/zh/guides/topic-detail/model/typescript-best-practice.mdx +0 -67
- package/docs/zh/guides/topic-detail/model/use-model.mdx +0 -248
- package/docs/zh/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
- package/docs/zh/plugin/official/cli-plugins/plugin-swc.mdx +0 -351
- package/docs/zh/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
- package/docs/zh/plugin/official/rsbuild-plugins/_meta.json +0 -1
- package/docs/zh/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -201
- package/docs/zh/plugin/official/rsbuild-plugins.mdx +0 -3
- package/docs/zh/tutorials/first-app/c01-start.mdx +0 -99
- package/docs/zh/tutorials/first-app/c02-component.mdx +0 -60
- package/docs/zh/tutorials/first-app/c03-css.mdx +0 -323
- package/docs/zh/tutorials/first-app/c04-routes.mdx +0 -172
- package/docs/zh/tutorials/first-app/c05-loader.mdx +0 -89
- package/docs/zh/tutorials/first-app/c06-model.mdx +0 -274
- package/docs/zh/tutorials/first-app/c07-container.mdx +0 -281
- package/docs/zh/tutorials/first-app/c08-entries.mdx +0 -135
- /package/docs/en/components/{reduck-migration.mdx → auto-upgrade.mdx} +0 -0
- /package/docs/{zh/components/reduck-migration.mdx → en/components/international/platform-support.mdx} +0 -0
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 5
|
|
3
|
-
title: connect
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# connect
|
|
7
|
-
|
|
8
|
-
import ReduckTip from '@site-docs-en/components/reduck-tip';
|
|
9
|
-
|
|
10
|
-
<ReduckTip />
|
|
11
|
-
|
|
12
|
-
:::tip
|
|
13
|
-
The original type of Reduck is complex. The following type definition shows the simplified type information. For the original type, see [**connect**](https://github.com/web-infra-dev/reduck/blob/main/packages/react/src/connect.ts).
|
|
14
|
-
|
|
15
|
-
:::
|
|
16
|
-
|
|
17
|
-
`Connect` is the same as `useModel` and is the corresponding HOC-style API. It is recommended to use the Hook-style `useModel` first.
|
|
18
|
-
|
|
19
|
-
## Function Signature
|
|
20
|
-
|
|
21
|
-
```ts
|
|
22
|
-
type SelectStateToProps = (
|
|
23
|
-
...modelStates: State[],
|
|
24
|
-
ownProps?: any,
|
|
25
|
-
) => PlainObject;
|
|
26
|
-
type SelectActionsToProps = (
|
|
27
|
-
...modelActions: Actions[],
|
|
28
|
-
ownProps?: any,
|
|
29
|
-
) => PlainObject;
|
|
30
|
-
|
|
31
|
-
function connect(models: Model, options?: ConnectOptions);
|
|
32
|
-
function connect(
|
|
33
|
-
models: [...Model[], SelectStateToProps?, SelectActionsToProps?],
|
|
34
|
-
options?: ConnectOptions,
|
|
35
|
-
);
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Input
|
|
39
|
-
|
|
40
|
-
- `models`: passed one or more Models. When `models` is an array type parameter, the last two params can be a function for filtering State (`SelectStateToProps` type) and a function for filtering Actions (`SelectActionsToProps` type).
|
|
41
|
-
|
|
42
|
-
- `SelectStateToProps`: `modelStates` is an array of the State of the passed Model object, `ownProps` is the props received by current component. The data returned by `SelectStateToProps` is passed to the props of the component. When the `SelectStateToProps` parameter is not passed in `models`, the States of all Models are merged and passed to the props of the component.
|
|
43
|
-
|
|
44
|
-
- `SelectActionsToProps`: `modelActions` is an array of the Action of the passed Model object, `ownProps` is the props received by current component. returned by `SelectActionsToProps` is passed to the props of the component. When the `SelectActionsToProps` parameter is not passed in `models`, the Action of all Models are merged and passed to the props of the component.
|
|
45
|
-
|
|
46
|
-
- `options`: Optional parameter for auxiliary configuration. Currently supports setting `forwardRef`, which is used to control whether to forward the `ref` of the component. The default value is `false`, which means that the `ref` is not forwarded. Set to `{ forwardRef: true }`, which means to forward `ref`.
|
|
47
|
-
|
|
48
|
-
### Return Type
|
|
49
|
-
|
|
50
|
-
Returns a HOC: receives an component, returns a component with extra State and Actions injected on `props`.
|
|
51
|
-
|
|
52
|
-
## Example
|
|
53
|
-
|
|
54
|
-
### Basic
|
|
55
|
-
|
|
56
|
-
```ts
|
|
57
|
-
const modelA = model('modelA').define({
|
|
58
|
-
state: {
|
|
59
|
-
a: 1,
|
|
60
|
-
},
|
|
61
|
-
actions: {
|
|
62
|
-
incA(state) {
|
|
63
|
-
return {
|
|
64
|
-
...state,
|
|
65
|
-
a: state.a + 1,
|
|
66
|
-
};
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
const modelB = model('modelB').define({
|
|
72
|
-
state: {
|
|
73
|
-
b: 10,
|
|
74
|
-
},
|
|
75
|
-
actions: {
|
|
76
|
-
incB(state) {
|
|
77
|
-
return {
|
|
78
|
-
...state,
|
|
79
|
-
b: state.b + 1,
|
|
80
|
-
};
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
function Test(props) {
|
|
86
|
-
props.incA(); // call modelA's action
|
|
87
|
-
props.incB(); // call modelB's action
|
|
88
|
-
|
|
89
|
-
props.a; // get modelA's state: a
|
|
90
|
-
props.b; // get modelB's state: b
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export default connect([modelA, modelB])(Test);
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Select State & Actions
|
|
97
|
-
|
|
98
|
-
```ts
|
|
99
|
-
function Test(props) {
|
|
100
|
-
props.incAll();
|
|
101
|
-
props.c;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
const stateSelector = (stateA, stateB) => ({
|
|
105
|
-
...stateA,
|
|
106
|
-
...stateB,
|
|
107
|
-
c: stateA.a + stateA.b,
|
|
108
|
-
});
|
|
109
|
-
const actionsSelector = (actionsA, actionsB) => ({
|
|
110
|
-
...actionsA,
|
|
111
|
-
...actionsB,
|
|
112
|
-
incAll: () => {
|
|
113
|
-
actionsA.incA();
|
|
114
|
-
actionsB.incB();
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
export default connect([modelA, modelB, stateSelector, actionsSelector])(Test);
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Forwarding Ref
|
|
122
|
-
|
|
123
|
-
```ts
|
|
124
|
-
import { useRef, forwardRef } from 'react';
|
|
125
|
-
|
|
126
|
-
function Test(props, ref) {
|
|
127
|
-
const { a, b } = props;
|
|
128
|
-
|
|
129
|
-
return (
|
|
130
|
-
<div ref={ref}>
|
|
131
|
-
<span>{a}</span>
|
|
132
|
-
<span>{b}</span>
|
|
133
|
-
</div>
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const TestWrapper = connect([modelA, modelB], { forwardRef: true })(
|
|
138
|
-
forwardRef(Test),
|
|
139
|
-
);
|
|
140
|
-
|
|
141
|
-
function App() {
|
|
142
|
-
const testRef = useRef();
|
|
143
|
-
|
|
144
|
-
return <TestWrapper ref={testRef} />;
|
|
145
|
-
}
|
|
146
|
-
```
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 11
|
|
3
|
-
title: createApp
|
|
4
|
-
---
|
|
5
|
-
# createApp
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
Reduck will call `createApp` to create a global application by default. If the entire application only needs one Store, then there is no need to call `createApp` manually.Only need to use `createApp` when you need to create a Store locally in the app.
|
|
12
|
-
|
|
13
|
-
:::caution
|
|
14
|
-
Note that the exported `createApp` in `@modern-js/runtime/model` is used to manage state, while the exported `createApp` in `@modern-js/runtime` is used to create the entire application. The two are differently.
|
|
15
|
-
|
|
16
|
-
:::
|
|
17
|
-
|
|
18
|
-
## Function Signature
|
|
19
|
-
|
|
20
|
-
```ts
|
|
21
|
-
interface AppConfig extends StoreConfig {
|
|
22
|
-
devTools?: boolean | DevToolsOptions;
|
|
23
|
-
autoActions?: boolean;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function createApp(config: AppConfig): object;
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Input
|
|
30
|
-
|
|
31
|
-
- `config`
|
|
32
|
-
- `StoreConfig`: the same as [`createStore`](./create-store.mdx) params.
|
|
33
|
-
- `devTools`: the default value is `true`. when it is an object type, configuring [Options](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Arguments.md) of Redux DevTools.
|
|
34
|
-
- `autoActions`: the default value is `true`.if [auto generate Actions](./auto-actions.mdx).
|
|
35
|
-
|
|
36
|
-
### Return Value
|
|
37
|
-
|
|
38
|
-
Reduck App, consists of the following properties:
|
|
39
|
-
|
|
40
|
-
- `Provider`: inject shared Store into locally component tree, same as [`Provider`](./Provider.mdx).
|
|
41
|
-
- `useModel`: get the Model mounted by the app's local Store, same as [`useModel`](./use-model.mdx).
|
|
42
|
-
- `useStaticModel`: get the Model mounted by the app's local Store. same as [`useStaticModel`](./use-static-model.mdx).
|
|
43
|
-
- `useLocalModel`: get the Model mounted by the app's local Store. same as [`useLocalModel`](./use-local-model.mdx).
|
|
44
|
-
- `useStore`: get the Store used locally by the app. same as [`useStore`](./use-store.mdx).
|
|
45
|
-
|
|
46
|
-
## Example
|
|
47
|
-
|
|
48
|
-
use `createApp`, local states can be created to isolate the states between different Reduck applications.
|
|
49
|
-
|
|
50
|
-
```tsx
|
|
51
|
-
const { Provider: LocalFooProvider, useModel: useLocalFooModel } = createApp();
|
|
52
|
-
const { Provider: LocalBarProvider, useModel: useLocalBarModel } = createApp();
|
|
53
|
-
|
|
54
|
-
function Foo() {
|
|
55
|
-
const [fooState] = useLocalFooModel(fooModel);
|
|
56
|
-
const [barState] = useLocalBarModel(fooModel);
|
|
57
|
-
|
|
58
|
-
return (
|
|
59
|
-
<div>
|
|
60
|
-
<div>Foo: {fooState}</div>
|
|
61
|
-
<div>Bar: {barState}</div>
|
|
62
|
-
</div>
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function Container() {
|
|
67
|
-
return (
|
|
68
|
-
<LocalFooProvider>
|
|
69
|
-
<LocalBarProvider>
|
|
70
|
-
<Foo />
|
|
71
|
-
</LocalBarProvider>
|
|
72
|
-
</LocalFooProvider>
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
```
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 10
|
|
3
|
-
title: createStore
|
|
4
|
-
---
|
|
5
|
-
# createStore
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
`createStore` is used to create a Store. Reduck’s Store based on Redux's [Store](https://redux.js.org/api/store) implementatio. Used to store the state of the application and managing the state and Model.
|
|
12
|
-
|
|
13
|
-
In general, this API is only used when you need to have full control over the creation of the Store. For example, to customize a Store, pass in the ['Provider'](./Provider.mdx) component to use.
|
|
14
|
-
|
|
15
|
-
## Function Signature
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
interface StoreConfig {
|
|
19
|
-
initialState?: Record<string, any>;
|
|
20
|
-
middlewares?: Middleware[];
|
|
21
|
-
models?: Model[];
|
|
22
|
-
plugins?: Plugin[];
|
|
23
|
-
enhancers?: StoreEnhancer[];
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
interface ReduckStore extends ReduxStore {
|
|
27
|
-
use: typeof useModel;
|
|
28
|
-
unmount: (model: Model) => void;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function createStore(config?: StoreConfig): ReduckStore;
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Input
|
|
35
|
-
|
|
36
|
-
- `config`: store options.
|
|
37
|
-
- `initialState`: set the initial state for store.
|
|
38
|
-
- `models`: set the Model to mount to the Store in advance(No need for normal use).
|
|
39
|
-
- `middlewares`: set Redux [middleware](https://redux.js.org/understanding/thinking-in-redux/glossary#middleware).
|
|
40
|
-
- `enhancers`: set Redux [Store enhancer](https://redux.js.org/understanding/thinking-in-redux/glossary#store-enhancer).
|
|
41
|
-
- `plugins`: set Reduck plugin.***experimental API, not recommended***.
|
|
42
|
-
|
|
43
|
-
### Return Value
|
|
44
|
-
|
|
45
|
-
Reduck Store:
|
|
46
|
-
|
|
47
|
-
- `use`: mount and fetch Model objects dynamically. Usage is the same as ['useModel'](./use-model.mdx), but can be used outside of React components.
|
|
48
|
-
- `unmount`: unmount the Model object, and the Model State is cleared from the Store.
|
|
49
|
-
- `ReduxStore`: [Redux Store API](https://redux.js.org/tutorials/fundamentals/part-4-store#redux-store).
|
|
50
|
-
|
|
51
|
-
## Example
|
|
52
|
-
|
|
53
|
-
```tsx
|
|
54
|
-
const store = createStore();
|
|
55
|
-
|
|
56
|
-
function load() {
|
|
57
|
-
const [, actions] = store.use(fooModel);
|
|
58
|
-
|
|
59
|
-
actions.load();
|
|
60
|
-
}
|
|
61
|
-
```
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 7
|
|
3
|
-
title: handleEffect
|
|
4
|
-
---
|
|
5
|
-
# handleEffect
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
An asynchronous function type Effect usually has three states that need to be processed: in request, request successful, and request failed. The way to handle these states is to write the Action functions (pending, fulfilled, rejected).
|
|
12
|
-
|
|
13
|
-
With the help of the `handleEffect` API, we can generate default Action functions to handle different results at each stage of an asynchronous request. The structure of the State returned by the Action generated by `handleEffect` is as follows:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
interface State {
|
|
17
|
-
result: any; // result of fulfilled state
|
|
18
|
-
pending: boolean; // request is pending
|
|
19
|
-
error: string; // request error message
|
|
20
|
-
}
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Function Signature
|
|
24
|
-
|
|
25
|
-
```ts
|
|
26
|
-
interface EffectActions {
|
|
27
|
-
pending: Action;
|
|
28
|
-
fulfilled: Action;
|
|
29
|
-
rejected: Action;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
interface Config {
|
|
33
|
-
ns?: string;
|
|
34
|
-
result?: string | false;
|
|
35
|
-
error?: string | false;
|
|
36
|
-
pending?: string | false;
|
|
37
|
-
combineMode?: 'merge' | 'replace';
|
|
38
|
-
omitResultNamespace?: boolean;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function handleEffect(config: Config): EffectActions;
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Input
|
|
45
|
-
|
|
46
|
-
- `ns`: the default returned State structure is flat, By setting this parameter, the returned State can be mounted under the field named by the `ns`. For example, if `ns` is set to `"data"`, the returned structure is:
|
|
47
|
-
|
|
48
|
-
```ts
|
|
49
|
-
interface State {
|
|
50
|
-
data: {
|
|
51
|
-
pending: boolean;
|
|
52
|
-
result: any;
|
|
53
|
-
error: string;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
- `result`: the default value is "result". This parameter corresponds to the field name that stores the fulfilled state results. For example, set `result` to `"items"`, the returned State structure is:
|
|
59
|
-
|
|
60
|
-
```ts
|
|
61
|
-
interface State {
|
|
62
|
-
items: any; // Default result -> items
|
|
63
|
-
pending: boolean;
|
|
64
|
-
error: string;
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
if `result` is `false`, then returned State has no `result`:
|
|
69
|
-
|
|
70
|
-
```ts
|
|
71
|
-
interface State {
|
|
72
|
-
pending: boolean;
|
|
73
|
-
error: string;
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
- `pending`: the default value is `"pending"`. Change the name of the `pending` field in the returned State. Usage is the same as `result`.
|
|
78
|
-
|
|
79
|
-
- `error`: the default value is `"error"`. Change the name of the `error` field in the returned State. Usage is the same as `result`.
|
|
80
|
-
|
|
81
|
-
- `combineMode`: the default value is `"merge"`. Get fulfilled state results. There are two ways to deal with it (The data types that can be automatically processed here are also limited to simple object or array types):
|
|
82
|
-
|
|
83
|
-
- `"merge"`: the previous data is merged with the current data. the data is an array type, operation is similar to `[].concat(lastData, currentData)`. the data is an object, operation is similar to `{...lastData, ...curData}`.
|
|
84
|
-
- `"replace"`: the current data directly replaces the previous data.
|
|
85
|
-
|
|
86
|
-
- `omitResultNamespace`: the default value is `false`. When the result is an object type, you want to mount the result directly on the State of the Model, rather than on "result", you can set it to true. For example:
|
|
87
|
-
|
|
88
|
-
```ts
|
|
89
|
-
// the result: {user: 'xx', email: 'xx'},
|
|
90
|
-
// config handleEffect({ omitResultNamespace: true })
|
|
91
|
-
// get State like follows:
|
|
92
|
-
{
|
|
93
|
-
user: 'xx',
|
|
94
|
-
email: 'xx',
|
|
95
|
-
pending: false,
|
|
96
|
-
error: null,
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Return Type
|
|
101
|
-
|
|
102
|
-
Objects are processed by actions in pending, fulfilled, and rejected states.
|
|
103
|
-
|
|
104
|
-
:::info More
|
|
105
|
-
[Manage Effect](/guides/topic-detail/model/manage-effects).
|
|
106
|
-
|
|
107
|
-
:::
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
title: model
|
|
4
|
-
---
|
|
5
|
-
# model
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
:::tip
|
|
12
|
-
The original type of Reduck is complex. The following type definition shows the simplified type information. For the original type, see [**model**](https://github.com/web-infra-dev/reduck/blob/main/packages/store/src/model/model.ts).
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
## model
|
|
17
|
-
|
|
18
|
-
Create a Model for managing application state.
|
|
19
|
-
|
|
20
|
-
`function model(name: string): { define: function }`
|
|
21
|
-
|
|
22
|
-
- name: `string`, the unique id of the Model created.
|
|
23
|
-
|
|
24
|
-
```ts title="example"
|
|
25
|
-
model('foo');
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## define
|
|
29
|
-
|
|
30
|
-
Used to define the detailed structure of the Model, supporting passing in an object type or function type parameter.
|
|
31
|
-
|
|
32
|
-
### Object Type
|
|
33
|
-
|
|
34
|
-
`function define(modelDesc: ModelDesc): Model;`
|
|
35
|
-
|
|
36
|
-
- modelDesc: `ModelDesc`, definition of Model structure, includes `state`、`computed`、`actions`、`effects` etc. props.
|
|
37
|
-
|
|
38
|
-
```tsx title="example"
|
|
39
|
-
const fooModel = model('foo').define({
|
|
40
|
-
state: 'foo',
|
|
41
|
-
computed: {
|
|
42
|
-
cFoo: state => `c${state}`,
|
|
43
|
-
},
|
|
44
|
-
actions: {
|
|
45
|
-
setState: (state, value) => {
|
|
46
|
-
return value;
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
effects: {
|
|
50
|
-
loadState: async () => {
|
|
51
|
-
// get state from remote
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Function Type
|
|
58
|
-
|
|
59
|
-
`function define((context: Context, utils: Utils) => ModelDesc): Model;`
|
|
60
|
-
|
|
61
|
-
- `context`: Reduck Context, can get underlying `store` object. `store` support all Redux Store [API](https://redux.js.org/api/store), also mounts the `use` method for consuming the Model, and the `unmount` method for unmounting the Model.
|
|
62
|
-
- utils: commonly used tool like `use`、`onMount`. `use` is the same as `store.use`, `onMount` is the hook function after the Model is mounted.
|
|
63
|
-
|
|
64
|
-
```ts
|
|
65
|
-
interface Utils {
|
|
66
|
-
use: UseModel;
|
|
67
|
-
onMount: OnMountHook;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
interface Context {
|
|
71
|
-
store: ReduxStore & {
|
|
72
|
-
use: UseModel;
|
|
73
|
-
unmount: (model: Model) => void;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
For example, through `use`, you can get the `state` and `actions` of the Model itself and other Models.
|
|
79
|
-
|
|
80
|
-
```tsx title="example"
|
|
81
|
-
const fooModel = model('foo').define(() => {
|
|
82
|
-
return {
|
|
83
|
-
state: 'foo',
|
|
84
|
-
actions: {
|
|
85
|
-
setState: (state, value) => {
|
|
86
|
-
return value;
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
const barModel = model('bar').define((_, { use }) => {
|
|
93
|
-
return {
|
|
94
|
-
state: 'bar',
|
|
95
|
-
effects: {
|
|
96
|
-
syncFoo() {
|
|
97
|
-
const [state, actions] = use(fooModel);
|
|
98
|
-
actions.setState(state);
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
});
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Input
|
|
106
|
-
|
|
107
|
-
#### ModelDesc.state
|
|
108
|
-
|
|
109
|
-
Define the state of the Model. Technically, any type of **State** is supported, but in practice it is recommended to use a JSON serializable type.
|
|
110
|
-
|
|
111
|
-
```ts
|
|
112
|
-
interface ModelDesc {
|
|
113
|
-
state: any;
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
#### ModelDesc.actions
|
|
118
|
-
|
|
119
|
-
Define the Actions of the Model. The function type of Actions is:
|
|
120
|
-
|
|
121
|
-
```ts
|
|
122
|
-
interface ModelDesc {
|
|
123
|
-
actions: {
|
|
124
|
-
[actionKey: string]: (state: State, payload: any) => State | void;
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Reduck internally integrates [immer](https://github.com/immerjs/immer), which can directly return the original `state`. When the Action has no explicit return value, Reduck internally returns a modified new State object.
|
|
130
|
-
|
|
131
|
-
#### ModelDesc.computed
|
|
132
|
-
|
|
133
|
-
Defines the derived state of the Model. The definition of derived state supports two types:
|
|
134
|
-
|
|
135
|
-
1. Depends only on the state of the Model itself
|
|
136
|
-
|
|
137
|
-
```ts
|
|
138
|
-
interface ModelDesc {
|
|
139
|
-
computed: {
|
|
140
|
-
[computedKey: string]: (state: State) => any;
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
2. Depends on the state of other Models
|
|
146
|
-
|
|
147
|
-
```ts
|
|
148
|
-
interface ModelDesc {
|
|
149
|
-
computed: {
|
|
150
|
-
[computedKey: string]: [
|
|
151
|
-
...models: Model[],
|
|
152
|
-
(state: State, ...args: ModelState[]) => any,
|
|
153
|
-
];
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
```ts title="example"
|
|
159
|
-
const fooModel = model('foo').define({
|
|
160
|
-
state: 'foo',
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
const barModel = model('bar').define({
|
|
164
|
-
state: 'bar',
|
|
165
|
-
computed: {
|
|
166
|
-
combineFoo: [fooModel, (state, fooState) => state + fooState],
|
|
167
|
-
},
|
|
168
|
-
});
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
#### ModelDesc.effects
|
|
172
|
-
|
|
173
|
-
Defines the Effects of the Model. The function types defined in Effects are:
|
|
174
|
-
|
|
175
|
-
```ts
|
|
176
|
-
interface ModelDesc {
|
|
177
|
-
effects: {
|
|
178
|
-
[effectKey: string]: (...args: any[]) => any;
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
```ts title="example"
|
|
184
|
-
const fooModel = model('foo').define((context, { use }) => ({
|
|
185
|
-
state: 'foo',
|
|
186
|
-
effects: {
|
|
187
|
-
persist() {
|
|
188
|
-
const [state] = use(fooModel);
|
|
189
|
-
localStorage.setItem('state', state);
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
}));
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
:::info More
|
|
196
|
-
[Define Model](/guides/topic-detail/model/define-model).
|
|
197
|
-
|
|
198
|
-
:::
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 4
|
|
3
|
-
title: useLocalModel
|
|
4
|
-
---
|
|
5
|
-
# useLocalModel
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
To use the State in the Model as a local state, the effect is similar to React's `useState`. `useLocalModel` API same as `useModel`. For detail, see [`useModel`](./use-model.mdx).
|
|
12
|
-
|
|
13
|
-
## Example
|
|
14
|
-
|
|
15
|
-
```tsx
|
|
16
|
-
function Container() {
|
|
17
|
-
const [state, actions] = useLocalModel(modelA);
|
|
18
|
-
const [state1, actions1] = useLocalModel(modelA);
|
|
19
|
-
|
|
20
|
-
// ...
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
`modelA` was loaded twice with useLocalModel above, because useLocalModel consumes local state, so state and state1 are also completely isolated.
|
|
25
|
-
|
|
26
|
-
:::info More
|
|
27
|
-
[Use Model](/guides/topic-detail/model/use-model).
|
|
28
|
-
|
|
29
|
-
:::
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
title: useModel
|
|
4
|
-
---
|
|
5
|
-
# useModel
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
:::tip
|
|
12
|
-
The original type of Reduck is complex. The following type definition shows the simplified type information. For the original type, see [**model**](https://github.com/web-infra-dev/reduck/blob/main/packages/store/src/model/model.ts).
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
## Function Signature
|
|
17
|
-
|
|
18
|
-
```ts
|
|
19
|
-
function useModel(
|
|
20
|
-
models: Models[],
|
|
21
|
-
stateSelector?: StateSelector,
|
|
22
|
-
actionSelector?: ActionSelector,
|
|
23
|
-
): [state, actions, subscribe];
|
|
24
|
-
function useModel(
|
|
25
|
-
...models: Models[],
|
|
26
|
-
stateSelector?: (...args: State[]) => any,
|
|
27
|
-
actionSelector?: (...args: Actions[]) => any,
|
|
28
|
-
): [state, actions, subscribe];
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Input
|
|
32
|
-
|
|
33
|
-
- models: Array of Model objects, which can be passed in as an array type parameter, or all Models can be passed in as parameters one by one.
|
|
34
|
-
- stateSelector: Optional parameters, used to filter State calculations. The first n parameters are the States corresponding to n Models, and the returned data is used as the first element of the `useModel` return value array.
|
|
35
|
-
- actionSelector: Optional parameters, used to filter Action calculations. The first n parameters are the States corresponding to n Models, and the returned data is used as the second element of the `useModel` return value array.
|
|
36
|
-
|
|
37
|
-
### Return Value
|
|
38
|
-
|
|
39
|
-
Returns an array with each value:
|
|
40
|
-
|
|
41
|
-
- state: return value of `stateSelector`. if there is no `stateSelector`, will combine all incoming Model States(including derived states) and return them. If there is an attribute of the same name in the State of different Models, the following State will override the previous State. when `state` changes, the component call `useModel` will re-render.
|
|
42
|
-
- actions: return value of `actionSelector`. if there is no `actionSelector`, will combine all incoming Model Action(including Effect) and return them. If there is an attribute of the same name in the Action of different Models, the following Action will override the previous Action.
|
|
43
|
-
- subscribe: A function that subscribes to State changes. This function is called when the State of any Model passed in changes.
|
|
44
|
-
|
|
45
|
-
## Example
|
|
46
|
-
|
|
47
|
-
### Basic
|
|
48
|
-
|
|
49
|
-
```tsx
|
|
50
|
-
import todoModel from 'models/todo';
|
|
51
|
-
import filterModel from 'models/filter';
|
|
52
|
-
|
|
53
|
-
function Test(props) {
|
|
54
|
-
const [state, actions] = useModel([todoModel, filterModel]);
|
|
55
|
-
actions.add(); // call todoModel add action
|
|
56
|
-
actions.setVisibleStatus(); // call filterModel filterModel action
|
|
57
|
-
|
|
58
|
-
state.items; // get todoModel state items
|
|
59
|
-
state.visibleStatus; // get filterModel state visibleStatus
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Selector Usage
|
|
64
|
-
|
|
65
|
-
```js
|
|
66
|
-
function Test(props) {
|
|
67
|
-
const [state, actions] = useModel(
|
|
68
|
-
[todoModel, filterModel],
|
|
69
|
-
(todoState, filterState) => ({
|
|
70
|
-
items: todoState.items,
|
|
71
|
-
visibleStatus: `${props.prefix}-${filterState.visibleStatus}`,
|
|
72
|
-
}),
|
|
73
|
-
(todoActions, filterActions) => ({
|
|
74
|
-
...todoActions,
|
|
75
|
-
...filterActions,
|
|
76
|
-
}),
|
|
77
|
-
);
|
|
78
|
-
actions.add(); // call todoModel add action
|
|
79
|
-
actions.setVisibleStatus(); // call filterModel filterModel action
|
|
80
|
-
|
|
81
|
-
state.items; // get todoModel state items
|
|
82
|
-
state.visibleStatus; // get filterModel state visibleStatus
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
:::info More
|
|
87
|
-
[use Model](/guides/topic-detail/model/use-model).
|
|
88
|
-
|
|
89
|
-
:::
|