@modern-js/main-doc 2.69.4 → 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,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
title: useStaticModel
|
|
4
|
-
---
|
|
5
|
-
# useStaticModel
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
If want to consume a Model in the form of React Hook in the component, and can get the current latest state at any time, but you don't want the Model state to be updated, which will cause the component to be re-rendered, we can use `useStaticModel`.
|
|
12
|
-
|
|
13
|
-
`useStaticModel` API is same as `useModel`.For detail, see [`useModel`](./use-model.mdx).
|
|
14
|
-
|
|
15
|
-
To ensure that the latest state is always available, be careful not to deconstruct the returned `state`.
|
|
16
|
-
|
|
17
|
-
```tsx
|
|
18
|
-
function App() {
|
|
19
|
-
// ❌ Do not deconstruct state, but can deconstruct actions.
|
|
20
|
-
const [{ username }, { logout }] = useStaticModel(userModel);
|
|
21
|
-
|
|
22
|
-
// ✅ True Usage.
|
|
23
|
-
const [state, { logout }] = useStaticModel(userModel);
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
state.username;
|
|
27
|
-
}, []);
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Example
|
|
32
|
-
|
|
33
|
-
The following `App` component consumes the `userModel` state, but does not use it directly in JSX. It can be found that changes in the `userModel` state do not necessarily cause the component to re-render. This situation can be optimized using `useStaticModel`.
|
|
34
|
-
|
|
35
|
-
```tsx
|
|
36
|
-
function App() {
|
|
37
|
-
const [state] = useStaticModel(userModel);
|
|
38
|
-
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
// Statistical UV Data
|
|
41
|
-
send('pageview', { user: state.user });
|
|
42
|
-
}, [state]);
|
|
43
|
-
|
|
44
|
-
return <div>Hello</div>;
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
:::info More
|
|
49
|
-
[Use Model](/guides/topic-detail/model/use-model).
|
|
50
|
-
|
|
51
|
-
:::
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 9
|
|
3
|
-
title: useStore
|
|
4
|
-
---
|
|
5
|
-
# useStore
|
|
6
|
-
|
|
7
|
-
import ReduckTip from "@site-docs-en/components/reduck-tip"
|
|
8
|
-
|
|
9
|
-
<ReduckTip />
|
|
10
|
-
|
|
11
|
-
`useStore` Used to get the store shared by the current component tree.
|
|
12
|
-
|
|
13
|
-
## Function Signature
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
function useStore(): ReduckStore;
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Return Type
|
|
20
|
-
|
|
21
|
-
- ReduckStore: Reduck Store, type refer to the return type of [createStore](./create-store.mdx).
|
|
22
|
-
|
|
23
|
-
:::info More
|
|
24
|
-
[Use Model](/guides/topic-detail/model/use-model).
|
|
25
|
-
|
|
26
|
-
:::
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: PreRender
|
|
3
|
-
---
|
|
4
|
-
# PreRender
|
|
5
|
-
|
|
6
|
-
A Helmet-like HOC without content implements SPA routing-level caching, manner without additional configuration.
|
|
7
|
-
|
|
8
|
-
## Usage
|
|
9
|
-
|
|
10
|
-
```tsx
|
|
11
|
-
import { PreRender } from '@modern-js/runtime/ssr';
|
|
12
|
-
|
|
13
|
-
export default () => (
|
|
14
|
-
<>
|
|
15
|
-
<PreRender interval={5} />
|
|
16
|
-
</>
|
|
17
|
-
);
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Function Signature
|
|
21
|
-
|
|
22
|
-
The `PreRender` provides a set of configuration for controlling caching rules, expiration times, caching algorithms, and more.
|
|
23
|
-
|
|
24
|
-
```tsx
|
|
25
|
-
type Props {
|
|
26
|
-
interval: number;
|
|
27
|
-
staleLimit: number;
|
|
28
|
-
level: number;
|
|
29
|
-
include: { header?: string[], query?: string[] };
|
|
30
|
-
matches: { header?: Record<string, any>, query?: Record<string, any> }
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function PreRender(props: Props): React.Component
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Input
|
|
37
|
-
|
|
38
|
-
- `interval`: set the time the cache keep fresh, seconds. During this time, the cache will be used directly and not invoke asynchronous rendering.
|
|
39
|
-
- `staleLimit`: sets the time when the cache is completely expired, seconds.During this time, The cache can be returned and asynchronous rendering will be invoke, otherwise must wait for the re-rendered result.
|
|
40
|
-
- `level`: sets the calculation rule level for the cache identity, usually used with `includes` and `matches`. The default value is `0`.
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
0: pathname
|
|
44
|
-
1: pathname + querystring
|
|
45
|
-
2: pathname + headers
|
|
46
|
-
3: pathname + querystring + headers
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
- `includes`: sets the content that needs to be included in the cache identifier, used when the `level` is not `0`. The default value is `null`.
|
|
50
|
-
- `matches`: sets the rewriting rule for the value of query or header in cache identity, usually used in cache category, supports regular expressions. The default value is `null`.
|
|
51
|
-
|
|
52
|
-
## Example
|
|
53
|
-
|
|
54
|
-
```tsx
|
|
55
|
-
import { PreRender } from '@modern-js/runtime/ssr';
|
|
56
|
-
|
|
57
|
-
export default function App() {
|
|
58
|
-
return (
|
|
59
|
-
<>
|
|
60
|
-
<PreRender interval={10} />
|
|
61
|
-
<div>Hello Modern</div>
|
|
62
|
-
</>
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
The following example shows how to add the parameters in the query and header into the cache identifier calculation:
|
|
68
|
-
|
|
69
|
-
```tsx
|
|
70
|
-
/* calculate cache identifier using channel in query and language in header */
|
|
71
|
-
<PreRender
|
|
72
|
-
interval={10}
|
|
73
|
-
level={2}
|
|
74
|
-
includes={{
|
|
75
|
-
query: ['channel'],
|
|
76
|
-
header: ['language'],
|
|
77
|
-
}}
|
|
78
|
-
/>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
The following example shows how not to let the test channel affect the online cache:
|
|
82
|
-
|
|
83
|
-
```tsx
|
|
84
|
-
/* rewrite the channel value starting with test_ in the query as "testChannel", otherwise rewrite it as "otherChannel" */
|
|
85
|
-
<PreRender interval={10} level={2} includes={{
|
|
86
|
-
query: ["channel"],
|
|
87
|
-
header: ["language"]
|
|
88
|
-
}} matches={{
|
|
89
|
-
query: {
|
|
90
|
-
channel: {
|
|
91
|
-
"testChannel", "^test_",
|
|
92
|
-
"otherChannel", ".*"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}} />
|
|
96
|
-
```
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Hook
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Hook
|
|
6
|
-
|
|
7
|
-
:::warning
|
|
8
|
-
|
|
9
|
-
The Hook API has been deprecated. Please use the [new Custom Web Server](/guides/advanced-features/web-server) to handle page requests.
|
|
10
|
-
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
Used to extend Modern.js built-in Web Server, all page requests are handled by these hooks.
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
import { AfterMatchHook, AfterRenderHook } from '@modern-js/runtime/server';
|
|
19
|
-
|
|
20
|
-
export const afterMatch: AfterMatchHook = (context, next) => {};
|
|
21
|
-
export const afterRender: AfterRenderHook = (context, next) => {};
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
:::info
|
|
25
|
-
Before using this API, please execute `pnpm run new` to create a new "Custom Web Server" source code directory.
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
pnpm run new
|
|
29
|
-
? Please select the operation you want: Create Elements
|
|
30
|
-
? Please select the type of element to create: New "Custom Web Server" source code directory
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
:::
|
|
34
|
-
|
|
35
|
-
## Function Signature
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
type HookContext = {
|
|
39
|
-
response: {
|
|
40
|
-
set: (key: string, value: string) => void;
|
|
41
|
-
status: (code: number) => void;
|
|
42
|
-
getStatus: () => number;
|
|
43
|
-
cookies: {
|
|
44
|
-
set: (key: string, value: string, options?: any) => void;
|
|
45
|
-
clear: () => void;
|
|
46
|
-
};
|
|
47
|
-
raw: (
|
|
48
|
-
body: string,
|
|
49
|
-
{ status, headers }: { status: number; headers: Record<string, any> },
|
|
50
|
-
) => void;
|
|
51
|
-
};
|
|
52
|
-
request: {
|
|
53
|
-
host: string;
|
|
54
|
-
pathname: string;
|
|
55
|
-
query: Record<string, any>;
|
|
56
|
-
cookie: string;
|
|
57
|
-
cookies: {
|
|
58
|
-
get: (key: string) => string;
|
|
59
|
-
};
|
|
60
|
-
headers: IncomingHttpHeaders;
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
function Hook(context: HookContext, next: NextFunction): Promsie<void> | void;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
different Hooks additionally provide different contexts. Currently Modern.js support `AfterMatch` and `AfterRender`.
|
|
68
|
-
|
|
69
|
-
```ts
|
|
70
|
-
type AfterMatchContext = HookContext & {
|
|
71
|
-
router: {
|
|
72
|
-
redirect: (url: string, status: number) => void;
|
|
73
|
-
rewrite: (entry: string) => void;
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
type AfterRenderContext = {
|
|
78
|
-
template: {
|
|
79
|
-
get: () => string;
|
|
80
|
-
set: (html: string) => void;
|
|
81
|
-
prependHead: (fragment: string) => void;
|
|
82
|
-
appendHead: (fragment: string) => void;
|
|
83
|
-
prependBody: (fragment: string) => void;
|
|
84
|
-
appendBody: (fragment: string) => void;
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Input
|
|
90
|
-
|
|
91
|
-
- `context`: Hook context.
|
|
92
|
-
- `response`: provides a series of methods to process the response.
|
|
93
|
-
- `request`: provides a series of methods to get request info.
|
|
94
|
-
- `router`: provides methods on routing.
|
|
95
|
-
- `template`: provides methods on content.
|
|
96
|
-
- `next`: call next listener (not affect the server process, only current hook).
|
|
97
|
-
|
|
98
|
-
## Example
|
|
99
|
-
|
|
100
|
-
### Redirect
|
|
101
|
-
|
|
102
|
-
Redirect to pages outside the site, for example to login page:
|
|
103
|
-
|
|
104
|
-
```ts
|
|
105
|
-
import type { AfterMatch } from '@modern-js/runtime/server';
|
|
106
|
-
|
|
107
|
-
export const afterMatch: AfterMatch = async (ctx, next) => {
|
|
108
|
-
ctx.router.redirect('https://website.com/login', 302);
|
|
109
|
-
};
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Rewrite
|
|
113
|
-
|
|
114
|
-
Rewrite to pages of the current site, for example, the same route returns pages that are adapted to different UA:
|
|
115
|
-
|
|
116
|
-
```ts
|
|
117
|
-
import type { AfterMatch } from '@modern-js/runtime/server';
|
|
118
|
-
|
|
119
|
-
export const afterMatch: AfterMatch = async (ctx, next) => {
|
|
120
|
-
ctx.router.rewrite('mobile');
|
|
121
|
-
};
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### HTML Inject
|
|
125
|
-
|
|
126
|
-
Inject some HTML content to the page, such as scripts, page skeletons, etc.:
|
|
127
|
-
|
|
128
|
-
```ts
|
|
129
|
-
import type { AfterRender } from '@modern-js/runtime/server';
|
|
130
|
-
|
|
131
|
-
export const afterRender: AfterRenderHook = (context, next) => {
|
|
132
|
-
ctx.template.prependBody('<div>Footer</div>');
|
|
133
|
-
};
|
|
134
|
-
```
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Middleware
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Middleware
|
|
6
|
-
|
|
7
|
-
:::warning
|
|
8
|
-
|
|
9
|
-
Middleware has been deprecated. Please use the [new Custom Web Server](/guides/advanced-features/web-server) to handle page requests.
|
|
10
|
-
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
Used to extend the built-in Web Server of Modern.js, unlike [Hook](/apis/app/runtime/web-server/hook), Middleware can directly operate Node's origin request and response, and can be extended using the framework plugin.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
|
|
18
|
-
```ts
|
|
19
|
-
import { Middleware } from '@modern-js/runtime/server';
|
|
20
|
-
|
|
21
|
-
export const middleware: Middleware = async (context, next) => {};
|
|
22
|
-
export const middleware: Middleware[] = [
|
|
23
|
-
async (context, next) => {},
|
|
24
|
-
async (context, next) => {},
|
|
25
|
-
];
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
:::info
|
|
29
|
-
Before using this API, please execute `pnpm run new` to create a new "Custom Web Server" source code directory.
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pnpm run new
|
|
33
|
-
? Please select the operation you want: Create Element
|
|
34
|
-
? Please select the type of element to create: New "Custom Web Server" source code directory
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
:::
|
|
38
|
-
|
|
39
|
-
## Function Signature
|
|
40
|
-
|
|
41
|
-
```ts
|
|
42
|
-
type Middleware = (
|
|
43
|
-
context: MiddlewareContext,
|
|
44
|
-
next: NextFunction,
|
|
45
|
-
) => Promise<void> | void;
|
|
46
|
-
|
|
47
|
-
type MiddlewareContext = {
|
|
48
|
-
response: {
|
|
49
|
-
set: (key: string, value: string) => void;
|
|
50
|
-
status: (code: number) => void;
|
|
51
|
-
getStatus: () => number;
|
|
52
|
-
cookies: {
|
|
53
|
-
set: (key: string, value: string, options?: any) => void;
|
|
54
|
-
clear: () => void;
|
|
55
|
-
};
|
|
56
|
-
raw: (
|
|
57
|
-
body: string,
|
|
58
|
-
{ status, headers }: { status: number; headers: Record<string, any> },
|
|
59
|
-
) => void;
|
|
60
|
-
locals: Record<string, any>;
|
|
61
|
-
};
|
|
62
|
-
request: {
|
|
63
|
-
host: string;
|
|
64
|
-
pathname: string;
|
|
65
|
-
query: Record<string, any>;
|
|
66
|
-
cookie: string;
|
|
67
|
-
cookies: {
|
|
68
|
-
get: (key: string) => string;
|
|
69
|
-
};
|
|
70
|
-
headers: IncomingHttpHeaders;
|
|
71
|
-
};
|
|
72
|
-
source: {
|
|
73
|
-
req: IncomingMessage;
|
|
74
|
-
res: ServerResponse;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Input
|
|
80
|
-
|
|
81
|
-
- `context`: Middleware context.
|
|
82
|
-
- `response`: provides a series of methods to process the response.
|
|
83
|
-
- `request`: provides a series of methods to get request info.
|
|
84
|
-
- `source`: provides Node.js native `req` and `res` object.
|
|
85
|
-
- `next`: call next listener (not affect the server process, only current hook).
|
|
86
|
-
|
|
87
|
-
:::warning
|
|
88
|
-
The execution of the `next` function does not affect built-in processes, only controls whether the next middleware executes. Rendering processes are interrupted only when the response is written.
|
|
89
|
-
:::
|
|
90
|
-
|
|
91
|
-
## Example
|
|
92
|
-
|
|
93
|
-
### Tracking
|
|
94
|
-
|
|
95
|
-
```ts
|
|
96
|
-
export const Middleware = () => async (ctx, next) => {
|
|
97
|
-
const start = Date.now();
|
|
98
|
-
ctx.source.res.once('finish', () => {
|
|
99
|
-
console.log(Date.now() - start);
|
|
100
|
-
});
|
|
101
|
-
};
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Inject Tools & Data
|
|
105
|
-
|
|
106
|
-
Modern.js provides `res.locals` to store local variables for the current request.
|
|
107
|
-
|
|
108
|
-
```ts
|
|
109
|
-
export const Middleware = () => async (ctx, next) => {
|
|
110
|
-
ctx.response.locals.id = 'Modern.js';
|
|
111
|
-
ctx.response.locals.rpc = createRpcInstance();
|
|
112
|
-
};
|
|
113
|
-
```
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Unstable Middleware
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Unstable Middleware
|
|
6
|
-
|
|
7
|
-
:::warning
|
|
8
|
-
|
|
9
|
-
UnstableMiddleware has been deprecated. Please use the [new Custom Web Server](/guides/advanced-features/web-server) to handle page requests.
|
|
10
|
-
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
Used to extend the built-in Web Server in Modern.js.
|
|
14
|
-
UnstableMiddleware will replace [Middleware](/apis/app/runtime/web-server/middleware) in the future.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Usage
|
|
18
|
-
|
|
19
|
-
```ts title="server/index.ts"
|
|
20
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
21
|
-
|
|
22
|
-
export const unstableMiddleware: UnstableMiddleware[] = [];
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Types
|
|
26
|
-
|
|
27
|
-
**UnstableMiddleware**
|
|
28
|
-
|
|
29
|
-
```ts
|
|
30
|
-
type UnstableMiddleware<
|
|
31
|
-
V extends Record<string, unknown> = Record<string, unknown>,
|
|
32
|
-
> = (
|
|
33
|
-
c: UnstableMiddlewareContext<V>,
|
|
34
|
-
next: UnstableNext,
|
|
35
|
-
) => Promise<void | Response>;
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**UnstableMiddlewareContext**
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
type Body = ReadableStream | ArrayBuffer | string | null;
|
|
42
|
-
|
|
43
|
-
type UnstableMiddlewareContext<
|
|
44
|
-
V extends Record<string, unknown> = Record<string, unknown>,
|
|
45
|
-
> = {
|
|
46
|
-
request: Request;
|
|
47
|
-
response: Response;
|
|
48
|
-
get: Get<V>;
|
|
49
|
-
set: Set<V>;
|
|
50
|
-
header: (name: string, value: string, options?: { append?: boolean }) => void;
|
|
51
|
-
status: (code: number) => void;
|
|
52
|
-
redirect: (location: string, status?: number) => Response;
|
|
53
|
-
body: (data: Body, init?: ResponseInit) => Response;
|
|
54
|
-
html: (
|
|
55
|
-
data: string | Promise<string>,
|
|
56
|
-
init?: ResponseInit,
|
|
57
|
-
) => Response | Promise<Response>;
|
|
58
|
-
};
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
**UnstableNext**
|
|
62
|
-
|
|
63
|
-
```ts
|
|
64
|
-
type UnstableNext = () => Promise<void>;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Examples
|
|
68
|
-
|
|
69
|
-
### Web Server Timing
|
|
70
|
-
|
|
71
|
-
```ts
|
|
72
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
73
|
-
|
|
74
|
-
const time: UnstableMiddleware = async (c, next) => {
|
|
75
|
-
const start = Date.now();
|
|
76
|
-
|
|
77
|
-
await next();
|
|
78
|
-
|
|
79
|
-
const end = Date.now();
|
|
80
|
-
|
|
81
|
-
console.log(`${end - start}`);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export const unstableMiddleware: UnstableMiddleware[] = [time];
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Injecting Server Data for DataLoader Consumption
|
|
88
|
-
|
|
89
|
-
```ts title="shared/index.ts"
|
|
90
|
-
export type Vars = {
|
|
91
|
-
message: string;
|
|
92
|
-
};
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
```ts title="server/index.ts"
|
|
96
|
-
import {
|
|
97
|
-
UnstableMiddleware,
|
|
98
|
-
UnstableMiddlewareContext,
|
|
99
|
-
} from '@modern-js/runtime/server';
|
|
100
|
-
import type { Vars } from '../shared/index';
|
|
101
|
-
|
|
102
|
-
const setPayload: UnstableMiddlewaree<Vars> = async (
|
|
103
|
-
c: UnstableMiddlewareContext<Vars>,
|
|
104
|
-
next,
|
|
105
|
-
) => {
|
|
106
|
-
c.set('message', 'facker');
|
|
107
|
-
|
|
108
|
-
await next();
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
export const unstableMiddleware: UnstableMiddleware<Vars>[] = [setPayload];
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
```ts title="src/routes/page.data.ts"
|
|
115
|
-
import type { Payload } from '../../shared/index';
|
|
116
|
-
import { LoaderFunctionArgs } from '@modern-js/runtime/router';
|
|
117
|
-
|
|
118
|
-
export const loader = async ({ context }: LoaderFunctionArgs<Vars>) => {
|
|
119
|
-
const message = context?.get('message');
|
|
120
|
-
|
|
121
|
-
// ...
|
|
122
|
-
};
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Redirect
|
|
126
|
-
|
|
127
|
-
```ts
|
|
128
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
129
|
-
|
|
130
|
-
const auth: UnstableMiddleware = async (c, next) => {
|
|
131
|
-
const user = getUser(c.request);
|
|
132
|
-
|
|
133
|
-
if (!user) {
|
|
134
|
-
return c.redirect('/login');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
await next();
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
export const unstableMiddleware: UnstableMiddleware[] = [auth];
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Modify Response
|
|
144
|
-
|
|
145
|
-
```ts
|
|
146
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
147
|
-
|
|
148
|
-
const modifier: UnstableMiddleware = async (c, next) => {
|
|
149
|
-
await next();
|
|
150
|
-
|
|
151
|
-
const { response } = c;
|
|
152
|
-
|
|
153
|
-
const text = await response.text();
|
|
154
|
-
|
|
155
|
-
const newText = text.replace('<html>', `<html lang="${language}">`);
|
|
156
|
-
|
|
157
|
-
const newheaders = response.headers;
|
|
158
|
-
newheaders.set('x-custom-value', 'modern');
|
|
159
|
-
|
|
160
|
-
c.response = c.body(newText, {
|
|
161
|
-
status: response.status,
|
|
162
|
-
headers: newheaders,
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
export const unstableMiddleware: UnstableMiddleware[] = [modifier];
|
|
167
|
-
```
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
Path rewriting can also be performed here, such as proxying the request sent to `localhost:8080/api/topics` to `https://cnodejs.org/api/v1/topics`.
|
|
2
|
-
|
|
3
|
-
```js title="modern.server-runtime.config.js"
|
|
4
|
-
import { defineConfig } from '@modern-js/app-tools/server';
|
|
5
|
-
export default defineConfig({
|
|
6
|
-
bff: {
|
|
7
|
-
proxy: {
|
|
8
|
-
'/api': {
|
|
9
|
-
target: 'https://cnodejs.org',
|
|
10
|
-
pathRewrite: { '/api/topics': '/api/v1/topics' },
|
|
11
|
-
changeOrigin: true,
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
BFF Proxy uses the powerful [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware). For more advanced usage, please refer to its [documentation](https://github.com/chimurai/http-proxy-middleware#options).
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
Refers to the build layer of Modern.js. The goal of Builder is to provide Modern.js users with out-of-the-box build capabilities and support seamless switching between webpack and Rspack.
|
|
2
|
-
|
|
3
|
-
The previous version of Modern.js `MAJOR_VERSION.46.0` used `@modern-js/builder`, which was upgraded to [Rsbuild](https://rsbuild.rs/) starting from `MAJOR_VERSION.46.0`.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
1. run `@modern-js/create` command:
|
|
2
|
-
|
|
3
|
-
```bash
|
|
4
|
-
npx @modern-js/create@latest myapi
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
2. interactive Q & A interface to initialize the project based on the results, with initialization performed according to the default settings:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
? Please select the programming language: TS
|
|
11
|
-
? Please select the package manager: pnpm
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
3. Execute the `new` command,enable BFF:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
? Please select the operation you want to perform Enable optional features
|
|
18
|
-
? Please select the feature to enable Enable "BFF"
|
|
19
|
-
? Please select BFF type Framework mode
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
4. Execute【[Existing BFF-enabled Projects](/en/guides/advanced-features/bff/cross-project.html#existing-bff-enabled-projects)】to turn on the cross-project call switch.
|
|
24
|
-
|
|
25
|
-
**Note:** When a project serves solely as a BFF producer, its runtime does not depend on the `/src` source directory. Removing the `/src` directory can help optimize the project's build efficiency.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
```js title="src/App.tsx"
|
|
2
|
-
import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
|
|
3
|
-
|
|
4
|
-
import { RouterProvider, Route, createBrowserRouter, createRoutesFromElements, BrowserRouter, Link, Outlet } from '@modern-js/runtime/router';
|
|
5
|
-
|
|
6
|
-
const AppLayout = () => (
|
|
7
|
-
<>
|
|
8
|
-
<div><Link to={'/table'}>Loading conventional routed sub-applications</Link></div>
|
|
9
|
-
<div><Link to={'/dashboard'}>Loading Self-Controlled Routing Sub-Applications</Link></div>
|
|
10
|
-
<div><Link to={'/'}>Uninstall a sub-application</Link></div>
|
|
11
|
-
<Outlet />
|
|
12
|
-
</>
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
export default () => {
|
|
16
|
-
const { apps, MApp, Table, Dashboard } = useModuleApps();
|
|
17
|
-
|
|
18
|
-
// If you are not using the MApp component, you need to use createBrowserRouter to create the route.
|
|
19
|
-
const router = createBrowserRouter(
|
|
20
|
-
createRoutesFromElements(
|
|
21
|
-
<Route path="/" element={<AppLayout />}>
|
|
22
|
-
<Route key={'table'} path={'table/*'} element={<Table />} />
|
|
23
|
-
<Route key={'dashboard'} path={'dashboard/*'} element={<Dashboard />} />
|
|
24
|
-
</Route>
|
|
25
|
-
)
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
// Approach 1: Use MApp to automatically load sub-applications based on the configured activeWhen parameter (this project is configured in modern.config.ts)
|
|
30
|
-
// <BrowserRouter>
|
|
31
|
-
// <MApp />
|
|
32
|
-
// </BrowserRouter>
|
|
33
|
-
|
|
34
|
-
// Approach 2: Manually write Route components to load sub-applications, which is convenient for scenarios that require authentication and other pre-requisite operations
|
|
35
|
-
<>
|
|
36
|
-
<RouterProvider router={router} />
|
|
37
|
-
</>
|
|
38
|
-
);
|
|
39
|
-
};
|
|
40
|
-
```
|