@modern-js/main-doc 2.7.0 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +27 -0
- package/README.md +15 -18
- package/docs/en/apis/app/commands.mdx +299 -0
- package/docs/en/apis/app/hooks/api/framework/lambda.mdx +57 -0
- package/docs/en/apis/app/hooks/api/functions/api.mdx +81 -0
- package/docs/en/apis/app/hooks/src/routes.mdx +90 -0
- package/docs/en/apis/app/hooks/src/server.mdx +34 -0
- package/docs/en/apis/app/runtime/model/connect.mdx +145 -0
- package/docs/en/apis/app/runtime/model/model_.mdx +199 -0
- package/docs/en/apis/app/runtime/model/use-model.mdx +89 -0
- package/docs/en/apis/app/runtime/router/router.mdx +262 -0
- package/docs/en/apis/app/runtime/web-server/hook.mdx +133 -0
- package/docs/en/apis/app/runtime/web-server/middleware.mdx +134 -0
- package/docs/en/components/enable-bff.mdx +31 -0
- package/docs/en/components/init-app.mdx +43 -0
- package/docs/en/components/init-rspack-app.mdx +7 -0
- package/docs/en/components/prerequisites.mdx +18 -0
- package/docs/en/configure/app/bff/enable-handle-web.mdx +24 -0
- package/docs/en/configure/app/dev/asset-prefix.mdx +13 -0
- package/docs/en/configure/app/dev/before-start-url.mdx +13 -0
- package/docs/en/configure/app/dev/hmr.mdx +13 -0
- package/docs/en/configure/app/dev/host.mdx +13 -0
- package/docs/en/configure/app/dev/https.mdx +13 -0
- package/docs/en/configure/app/dev/port.mdx +13 -0
- package/docs/en/configure/app/dev/progress-bar.mdx +13 -0
- package/docs/en/configure/app/dev/start-url.mdx +13 -0
- package/docs/en/configure/app/experiments/lazy-compilation.mdx +13 -0
- package/docs/en/configure/app/html/app-icon.mdx +13 -0
- package/docs/en/configure/app/html/crossorigin.mdx +13 -0
- package/docs/en/configure/app/html/disable-html-folder.mdx +13 -0
- package/docs/en/configure/app/html/favicon-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/favicon.mdx +13 -0
- package/docs/en/configure/app/html/inject-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/inject.mdx +13 -0
- package/docs/en/configure/app/html/meta-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/meta.mdx +13 -0
- package/docs/en/configure/app/html/mount-id.mdx +13 -0
- package/docs/en/configure/app/html/tags-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/tags.mdx +13 -0
- package/docs/en/configure/app/html/template-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/template-parameters-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/template-parameters.mdx +13 -0
- package/docs/en/configure/app/html/template.mdx +13 -0
- package/docs/en/configure/app/html/title-by-entries.mdx +13 -0
- package/docs/en/configure/app/html/title.mdx +13 -0
- package/docs/en/configure/app/output/asset-prefix.mdx +13 -0
- package/docs/en/configure/app/output/assets-retry.mdx +13 -0
- package/docs/en/configure/app/output/charset.mdx +13 -0
- package/docs/en/configure/app/output/clean-dist-path.mdx +13 -0
- package/docs/en/configure/app/output/convert-to-rem.mdx +13 -0
- package/docs/en/configure/app/output/copy.mdx +13 -0
- package/docs/en/configure/app/output/css-module-local-ident-name.mdx +13 -0
- package/docs/en/configure/app/output/data-uri-limit.mdx +13 -0
- package/docs/en/configure/app/output/disable-css-extract.mdx +13 -0
- package/docs/en/configure/app/output/disable-css-module-extension.mdx +13 -0
- package/docs/en/configure/app/output/disable-filename-hash.mdx +13 -0
- package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +13 -0
- package/docs/en/configure/app/output/disable-minimize.mdx +13 -0
- package/docs/en/configure/app/output/disable-source-map.mdx +13 -0
- package/docs/en/configure/app/output/disable-ts-checker.mdx +13 -0
- package/docs/en/configure/app/output/dist-path.mdx +13 -0
- package/docs/en/configure/app/output/enable-asset-fallback.mdx +13 -0
- package/docs/en/configure/app/output/enable-asset-manifest.mdx +13 -0
- package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +13 -0
- package/docs/en/configure/app/output/enable-inline-scripts.mdx +13 -0
- package/docs/en/configure/app/output/enable-inline-styles.mdx +13 -0
- package/docs/en/configure/app/output/enable-latest-decorators.mdx +13 -0
- package/docs/en/configure/app/output/externals.mdx +13 -0
- package/docs/en/configure/app/output/filename.mdx +13 -0
- package/docs/en/configure/app/output/legal-comments.mdx +13 -0
- package/docs/en/configure/app/output/override-browserslist.mdx +13 -0
- package/docs/en/configure/app/output/polyfill.mdx +13 -0
- package/docs/en/configure/app/output/ssg.mdx +196 -0
- package/docs/en/configure/app/output/svg-default-export.mdx +13 -0
- package/docs/en/configure/app/performance/build-cache.mdx +13 -0
- package/docs/en/configure/app/performance/bundle-analyze.mdx +13 -0
- package/docs/en/configure/app/performance/chunk-split.mdx +13 -0
- package/docs/en/configure/app/performance/print-file-size.mdx +13 -0
- package/docs/en/configure/app/performance/profile.mdx +13 -0
- package/docs/en/configure/app/performance/remove-console.mdx +13 -0
- package/docs/en/configure/app/performance/remove-moment-locale.mdx +13 -0
- package/docs/en/configure/app/security/check-syntax.mdx +13 -0
- package/docs/en/configure/app/security/sri.mdx +13 -0
- package/docs/en/configure/app/server/enable-framework-ext.mdx +49 -0
- package/docs/en/configure/app/server/public-routes.mdx +26 -0
- package/docs/en/configure/app/server/ssr.mdx +38 -0
- package/docs/en/configure/app/source/alias.mdx +13 -0
- package/docs/en/configure/app/source/compile-js-data-uri.mdx +13 -0
- package/docs/en/configure/app/source/define.mdx +13 -0
- package/docs/en/configure/app/source/design-system.mdx +1175 -0
- package/docs/en/configure/app/source/disable-entry-dirs.mdx +39 -0
- package/docs/en/configure/app/source/entries.mdx +123 -0
- package/docs/en/configure/app/source/exclude.mdx +13 -0
- package/docs/en/configure/app/source/global-vars.mdx +13 -0
- package/docs/en/configure/app/source/include.mdx +13 -0
- package/docs/en/configure/app/source/module-scopes.mdx +13 -0
- package/docs/en/configure/app/source/pre-entry.mdx +13 -0
- package/docs/en/configure/app/source/resolve-extension-prefix.mdx +13 -0
- package/docs/en/configure/app/source/resolve-main-fields.mdx +13 -0
- package/docs/en/configure/app/tools/autoprefixer.mdx +13 -0
- package/docs/en/configure/app/tools/babel.mdx +13 -0
- package/docs/en/configure/app/tools/css-extract.mdx +13 -0
- package/docs/en/configure/app/tools/css-loader.mdx +13 -0
- package/docs/en/configure/app/tools/dev-server.mdx +13 -0
- package/docs/en/configure/app/tools/html-plugin.mdx +13 -0
- package/docs/en/configure/app/tools/inspector.mdx +13 -0
- package/docs/en/configure/app/tools/less.mdx +13 -0
- package/docs/en/configure/app/tools/minify-css.mdx +13 -0
- package/docs/en/configure/app/tools/postcss.mdx +13 -0
- package/docs/en/configure/app/tools/pug.mdx +13 -0
- package/docs/en/configure/app/tools/rspack.mdx +13 -0
- package/docs/en/configure/app/tools/sass.mdx +13 -0
- package/docs/en/configure/app/tools/style-loader.mdx +13 -0
- package/docs/en/configure/app/tools/styled-components.mdx +13 -0
- package/docs/en/configure/app/tools/terser.mdx +13 -0
- package/docs/en/configure/app/tools/ts-checker.mdx +13 -0
- package/docs/en/configure/app/tools/ts-loader.mdx +13 -0
- package/docs/en/configure/app/tools/webpack-chain.mdx +13 -0
- package/docs/en/configure/app/tools/webpack.mdx +13 -0
- package/docs/en/guides/advanced-features/bff/_category_.json +8 -0
- package/docs/en/guides/advanced-features/code-split.mdx +80 -0
- package/docs/en/guides/advanced-features/compatibility.mdx +78 -0
- package/docs/en/guides/advanced-features/eslint.mdx +148 -0
- package/docs/en/guides/advanced-features/low-level.mdx +45 -0
- package/docs/en/guides/advanced-features/rspack-start.mdx +61 -0
- package/docs/en/guides/advanced-features/ssg.mdx +116 -0
- package/docs/en/guides/advanced-features/ssr.mdx +518 -0
- package/docs/en/guides/advanced-features/testing.mdx +46 -0
- package/docs/en/guides/advanced-features/web-server.mdx +124 -0
- package/docs/en/guides/basic-features/data-fetch.mdx +404 -0
- package/docs/en/guides/basic-features/env-vars.mdx +174 -0
- package/docs/en/guides/basic-features/html.mdx +247 -0
- package/docs/en/guides/basic-features/proxy.mdx +61 -0
- package/docs/en/guides/concept/builder.mdx +47 -0
- package/docs/en/guides/get-started/introduction.mdx +50 -0
- package/docs/en/guides/get-started/quick-start.mdx +162 -0
- package/docs/en/guides/topic-detail/framework-plugin/extend.mdx +164 -0
- package/docs/en/guides/topic-detail/framework-plugin/hook-list.mdx +827 -0
- package/docs/en/guides/topic-detail/framework-plugin/hook.mdx +188 -0
- package/docs/en/guides/topic-detail/framework-plugin/implement.mdx +246 -0
- package/docs/en/guides/topic-detail/framework-plugin/introduction.mdx +50 -0
- package/docs/en/guides/topic-detail/framework-plugin/plugin-api.mdx +117 -0
- package/docs/en/guides/topic-detail/framework-plugin/relationship.mdx +119 -0
- package/docs/en/guides/topic-detail/generator/codesmith/api/npm.mdx +48 -0
- package/docs/en/guides/topic-detail/generator/codesmith/develop.mdx +53 -0
- package/docs/en/guides/topic-detail/generator/config/app.mdx +82 -0
- package/docs/en/guides/topic-detail/generator/plugin/api/input/addInputAfter.mdx +55 -0
- package/docs/en/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +55 -0
- package/docs/en/guides/topic-detail/generator/plugin/api/npm/install.mdx +18 -0
- package/docs/en/guides/topic-detail/generator/plugin/develop.mdx +125 -0
- package/docs/en/guides/topic-detail/generator/project.mdx +118 -0
- package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +29 -0
- package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +254 -0
- package/docs/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +282 -0
- package/docs/en/guides/topic-detail/micro-frontend/c04-communicate.mdx +57 -0
- package/docs/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +26 -0
- package/docs/en/guides/topic-detail/model/auto-actions.mdx +89 -0
- package/docs/en/guides/topic-detail/model/computed-state.mdx +153 -0
- package/docs/en/guides/topic-detail/model/define-model.mdx +66 -0
- package/docs/en/guides/topic-detail/model/faq.mdx +40 -0
- package/docs/en/guides/topic-detail/model/manage-effects.mdx +251 -0
- package/docs/en/guides/topic-detail/model/model-communicate.mdx +222 -0
- package/docs/en/guides/topic-detail/model/performance.mdx +170 -0
- package/docs/en/guides/topic-detail/model/quick-start.mdx +114 -0
- package/docs/en/guides/topic-detail/model/redux-integration.mdx +24 -0
- package/docs/en/guides/topic-detail/model/test-model.mdx +45 -0
- package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +72 -0
- package/docs/en/guides/topic-detail/model/use-model.mdx +247 -0
- package/docs/en/guides/topic-detail/model/use-out-of-modernjs.mdx +50 -0
- package/docs/en/guides/troubleshooting/cli.mdx +63 -0
- package/docs/en/tutorials/first-app/c03-css.mdx +323 -0
- package/docs/zh/apis/app/commands.mdx +301 -0
- package/docs/zh/apis/app/runtime/model/connect.mdx +143 -0
- package/docs/zh/apis/app/runtime/model/model_.mdx +199 -0
- package/docs/zh/apis/app/runtime/model/use-model.mdx +89 -0
- package/docs/zh/apis/app/runtime/web-server/hook.mdx +132 -0
- package/docs/zh/apis/app/runtime/web-server/middleware.mdx +131 -0
- package/docs/zh/apis/monorepo/commands/gen-release-note.mdx +32 -0
- package/docs/zh/apis/monorepo/commands/new.mdx +39 -0
- package/docs/zh/components/default-mwa-generate.mdx +5 -0
- package/docs/zh/components/enable-bff.mdx +31 -0
- package/docs/zh/components/init-app.mdx +44 -0
- package/docs/zh/components/init-rspack-app.mdx +7 -0
- package/docs/zh/components/prerequisites.mdx +18 -0
- package/docs/zh/components/release-note.mdx +1 -0
- package/docs/zh/configure/app/bff/enable-handle-web.mdx +24 -0
- package/docs/zh/configure/app/dev/asset-prefix.mdx +13 -0
- package/docs/zh/configure/app/dev/before-start-url.mdx +13 -0
- package/docs/zh/configure/app/dev/hmr.mdx +13 -0
- package/docs/zh/configure/app/dev/host.mdx +13 -0
- package/docs/zh/configure/app/dev/https.mdx +13 -0
- package/docs/zh/configure/app/dev/port.mdx +13 -0
- package/docs/zh/configure/app/dev/progress-bar.mdx +13 -0
- package/docs/zh/configure/app/dev/start-url.mdx +13 -0
- package/docs/zh/configure/app/experiments/lazy-compilation.mdx +13 -0
- package/docs/zh/configure/app/html/app-icon.mdx +13 -0
- package/docs/zh/configure/app/html/crossorigin.mdx +13 -0
- package/docs/zh/configure/app/html/disable-html-folder.mdx +13 -0
- package/docs/zh/configure/app/html/favicon-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/favicon.mdx +13 -0
- package/docs/zh/configure/app/html/inject-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/inject.mdx +13 -0
- package/docs/zh/configure/app/html/meta-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/meta.mdx +13 -0
- package/docs/zh/configure/app/html/mount-id.mdx +13 -0
- package/docs/zh/configure/app/html/tags-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/tags.mdx +13 -0
- package/docs/zh/configure/app/html/template-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/template-parameters.mdx +13 -0
- package/docs/zh/configure/app/html/template.mdx +13 -0
- package/docs/zh/configure/app/html/title-by-entries.mdx +13 -0
- package/docs/zh/configure/app/html/title.mdx +13 -0
- package/docs/zh/configure/app/output/asset-prefix.mdx +13 -0
- package/docs/zh/configure/app/output/assets-retry.mdx +13 -0
- package/docs/zh/configure/app/output/charset.mdx +13 -0
- package/docs/zh/configure/app/output/clean-dist-path.mdx +13 -0
- package/docs/zh/configure/app/output/convert-to-rem.mdx +13 -0
- package/docs/zh/configure/app/output/copy.mdx +13 -0
- package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +13 -0
- package/docs/zh/configure/app/output/data-uri-limit.mdx +13 -0
- package/docs/zh/configure/app/output/disable-css-extract.mdx +13 -0
- package/docs/zh/configure/app/output/disable-css-module-extension.mdx +13 -0
- package/docs/zh/configure/app/output/disable-filename-hash.mdx +13 -0
- package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +13 -0
- package/docs/zh/configure/app/output/disable-minimize.mdx +13 -0
- package/docs/zh/configure/app/output/disable-source-map.mdx +13 -0
- package/docs/zh/configure/app/output/disable-ts-checker.mdx +13 -0
- package/docs/zh/configure/app/output/dist-path.mdx +13 -0
- package/docs/zh/configure/app/output/enable-asset-fallback.mdx +13 -0
- package/docs/zh/configure/app/output/enable-asset-manifest.mdx +13 -0
- package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +13 -0
- package/docs/zh/configure/app/output/enable-inline-scripts.mdx +13 -0
- package/docs/zh/configure/app/output/enable-inline-styles.mdx +13 -0
- package/docs/zh/configure/app/output/enable-latest-decorators.mdx +13 -0
- package/docs/zh/configure/app/output/externals.mdx +13 -0
- package/docs/zh/configure/app/output/filename.mdx +13 -0
- package/docs/zh/configure/app/output/legal-comments.mdx +13 -0
- package/docs/zh/configure/app/output/override-browserslist.mdx +13 -0
- package/docs/zh/configure/app/output/polyfill.mdx +13 -0
- package/docs/zh/configure/app/output/svg-default-export.mdx +13 -0
- package/docs/zh/configure/app/performance/build-cache.mdx +13 -0
- package/docs/zh/configure/app/performance/bundle-analyze.mdx +13 -0
- package/docs/zh/configure/app/performance/chunk-split.mdx +13 -0
- package/docs/zh/configure/app/performance/print-file-size.mdx +13 -0
- package/docs/zh/configure/app/performance/profile.mdx +13 -0
- package/docs/zh/configure/app/performance/remove-console.mdx +13 -0
- package/docs/zh/configure/app/performance/remove-moment-locale.mdx +13 -0
- package/docs/zh/configure/app/security/check-syntax.mdx +13 -0
- package/docs/zh/configure/app/security/sri.mdx +13 -0
- package/docs/zh/configure/app/server/enable-framework-ext.mdx +49 -0
- package/docs/zh/configure/app/source/alias.mdx +13 -0
- package/docs/zh/configure/app/source/compile-js-data-uri.mdx +13 -0
- package/docs/zh/configure/app/source/define.mdx +13 -0
- package/docs/zh/configure/app/source/exclude.mdx +13 -0
- package/docs/zh/configure/app/source/global-vars.mdx +13 -0
- package/docs/zh/configure/app/source/include.mdx +13 -0
- package/docs/zh/configure/app/source/module-scopes.mdx +13 -0
- package/docs/zh/configure/app/source/pre-entry.mdx +13 -0
- package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +13 -0
- package/docs/zh/configure/app/source/resolve-main-fields.mdx +13 -0
- package/docs/zh/configure/app/tools/autoprefixer.mdx +13 -0
- package/docs/zh/configure/app/tools/babel.mdx +13 -0
- package/docs/zh/configure/app/tools/css-extract.mdx +13 -0
- package/docs/zh/configure/app/tools/css-loader.mdx +13 -0
- package/docs/zh/configure/app/tools/dev-server.mdx +13 -0
- package/docs/zh/configure/app/tools/html-plugin.mdx +13 -0
- package/docs/zh/configure/app/tools/inspector.mdx +13 -0
- package/docs/zh/configure/app/tools/less.mdx +13 -0
- package/docs/zh/configure/app/tools/minify-css.mdx +13 -0
- package/docs/zh/configure/app/tools/postcss.mdx +13 -0
- package/docs/zh/configure/app/tools/pug.mdx +13 -0
- package/docs/zh/configure/app/tools/rspack.mdx +13 -0
- package/docs/zh/configure/app/tools/sass.mdx +13 -0
- package/docs/zh/configure/app/tools/style-loader.mdx +13 -0
- package/docs/zh/configure/app/tools/styled-components.mdx +13 -0
- package/docs/zh/configure/app/tools/terser.mdx +13 -0
- package/docs/zh/configure/app/tools/ts-checker.mdx +13 -0
- package/docs/zh/configure/app/tools/ts-loader.mdx +13 -0
- package/docs/zh/configure/app/tools/webpack-chain.mdx +13 -0
- package/docs/zh/configure/app/tools/webpack.mdx +13 -0
- package/docs/zh/guides/advanced-features/bff/_category_.json +8 -0
- package/docs/zh/guides/advanced-features/rspack-start.mdx +62 -0
- package/docs/zh/guides/advanced-features/ssr.mdx +507 -0
- package/docs/zh/guides/advanced-features/web-server.mdx +122 -0
- package/docs/zh/guides/basic-features/mock.mdx +99 -0
- package/docs/zh/guides/concept/builder.mdx +47 -0
- package/docs/zh/guides/get-started/introduction.mdx +47 -0
- package/docs/zh/guides/topic-detail/changesets/changelog.mdx +238 -0
- package/docs/zh/guides/topic-detail/changesets/commit.mdx +271 -0
- package/docs/zh/guides/topic-detail/changesets/github.mdx +164 -0
- package/docs/zh/guides/topic-detail/changesets/release-note.mdx +259 -0
- package/docs/zh/guides/topic-detail/framework-plugin/plugin-api.mdx +117 -0
- package/docs/zh/guides/topic-detail/generator/plugin/develop.mdx +125 -0
- package/docs/zh/guides/topic-detail/model/faq.mdx +41 -0
- package/docs/zh/guides/topic-detail/model/manage-effects.mdx +260 -0
- package/docs/zh/guides/topic-detail/model/model-communicate.mdx +220 -0
- package/docs/zh/guides/topic-detail/model/performance.mdx +171 -0
- package/docs/zh/guides/topic-detail/model/quick-start.mdx +113 -0
- package/docs/zh/guides/topic-detail/model/use-model.mdx +252 -0
- package/docs/zh/guides/topic-detail/monorepo/create-sub-project.mdx +67 -0
- package/docs/zh/guides/topic-detail/monorepo/sub-project-interface.mdx +179 -0
- package/docs/zh/index.md +4 -0
- package/en/configure/app/dev/asset-prefix.mdx +1 -1
- package/en/configure/app/dev/before-start-url.mdx +1 -1
- package/en/configure/app/dev/hmr.mdx +1 -1
- package/en/configure/app/dev/host.mdx +1 -1
- package/en/configure/app/dev/https.mdx +1 -1
- package/en/configure/app/dev/port.mdx +1 -1
- package/en/configure/app/dev/progress-bar.mdx +1 -1
- package/en/configure/app/dev/start-url.mdx +1 -1
- package/en/configure/app/experiments/lazy-compilation.mdx +1 -1
- package/en/configure/app/html/app-icon.mdx +1 -1
- package/en/configure/app/html/crossorigin.mdx +1 -1
- package/en/configure/app/html/disable-html-folder.mdx +1 -1
- package/en/configure/app/html/favicon-by-entries.mdx +1 -1
- package/en/configure/app/html/favicon.mdx +1 -1
- package/en/configure/app/html/inject-by-entries.mdx +1 -1
- package/en/configure/app/html/inject.mdx +1 -1
- package/en/configure/app/html/meta-by-entries.mdx +1 -1
- package/en/configure/app/html/meta.mdx +1 -1
- package/en/configure/app/html/mount-id.mdx +1 -1
- package/en/configure/app/html/tags-by-entries.mdx +1 -1
- package/en/configure/app/html/tags.mdx +1 -1
- package/en/configure/app/html/template-by-entries.mdx +1 -1
- package/en/configure/app/html/template-parameters-by-entries.mdx +1 -1
- package/en/configure/app/html/template-parameters.mdx +1 -1
- package/en/configure/app/html/template.mdx +1 -1
- package/en/configure/app/html/title-by-entries.mdx +1 -1
- package/en/configure/app/html/title.mdx +1 -1
- package/en/configure/app/output/asset-prefix.mdx +1 -1
- package/en/configure/app/output/assets-retry.mdx +1 -1
- package/en/configure/app/output/charset.mdx +1 -1
- package/en/configure/app/output/clean-dist-path.mdx +1 -1
- package/en/configure/app/output/convert-to-rem.mdx +1 -1
- package/en/configure/app/output/copy.mdx +1 -1
- package/en/configure/app/output/css-module-local-ident-name.mdx +1 -1
- package/en/configure/app/output/data-uri-limit.mdx +1 -1
- package/en/configure/app/output/disable-css-extract.mdx +1 -1
- package/en/configure/app/output/disable-css-module-extension.mdx +1 -1
- package/en/configure/app/output/disable-filename-hash.mdx +1 -1
- package/en/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
- package/en/configure/app/output/disable-minimize.mdx +1 -1
- package/en/configure/app/output/disable-source-map.mdx +1 -1
- package/en/configure/app/output/disable-ts-checker.mdx +1 -1
- package/en/configure/app/output/dist-path.mdx +1 -1
- package/en/configure/app/output/enable-asset-fallback.mdx +1 -1
- package/en/configure/app/output/enable-asset-manifest.mdx +1 -1
- package/en/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
- package/en/configure/app/output/enable-inline-scripts.mdx +1 -1
- package/en/configure/app/output/enable-inline-styles.mdx +1 -1
- package/en/configure/app/output/enable-latest-decorators.mdx +1 -1
- package/en/configure/app/output/externals.mdx +1 -1
- package/en/configure/app/output/filename.mdx +1 -1
- package/en/configure/app/output/legal-comments.mdx +1 -1
- package/en/configure/app/output/override-browserslist.mdx +1 -1
- package/en/configure/app/output/polyfill.mdx +1 -1
- package/en/configure/app/output/svg-default-export.mdx +1 -1
- package/en/configure/app/performance/build-cache.mdx +1 -1
- package/en/configure/app/performance/bundle-analyze.mdx +1 -1
- package/en/configure/app/performance/chunk-split.mdx +1 -1
- package/en/configure/app/performance/print-file-size.mdx +1 -1
- package/en/configure/app/performance/profile.mdx +1 -1
- package/en/configure/app/performance/remove-console.mdx +1 -1
- package/en/configure/app/performance/remove-moment-locale.mdx +1 -1
- package/en/configure/app/security/check-syntax.mdx +1 -1
- package/en/configure/app/security/sri.mdx +1 -1
- package/en/configure/app/source/alias.mdx +1 -1
- package/en/configure/app/source/compile-js-data-uri.mdx +1 -1
- package/en/configure/app/source/define.mdx +1 -1
- package/en/configure/app/source/exclude.mdx +1 -1
- package/en/configure/app/source/global-vars.mdx +1 -1
- package/en/configure/app/source/include.mdx +1 -1
- package/en/configure/app/source/module-scopes.mdx +1 -1
- package/en/configure/app/source/pre-entry.mdx +1 -1
- package/en/configure/app/source/resolve-extension-prefix.mdx +1 -1
- package/en/configure/app/source/resolve-main-fields.mdx +1 -1
- package/en/configure/app/tools/autoprefixer.mdx +1 -1
- package/en/configure/app/tools/babel.mdx +1 -1
- package/en/configure/app/tools/css-extract.mdx +1 -1
- package/en/configure/app/tools/css-loader.mdx +1 -1
- package/en/configure/app/tools/dev-server.mdx +1 -1
- package/en/configure/app/tools/html-plugin.mdx +1 -1
- package/en/configure/app/tools/inspector.mdx +1 -1
- package/en/configure/app/tools/less.mdx +1 -1
- package/en/configure/app/tools/minify-css.mdx +1 -1
- package/en/configure/app/tools/postcss.mdx +1 -1
- package/en/configure/app/tools/pug.mdx +1 -1
- package/en/configure/app/tools/rspack.mdx +1 -1
- package/en/configure/app/tools/sass.mdx +1 -1
- package/en/configure/app/tools/style-loader.mdx +1 -1
- package/en/configure/app/tools/styled-components.mdx +1 -1
- package/en/configure/app/tools/terser.mdx +1 -1
- package/en/configure/app/tools/ts-checker.mdx +1 -1
- package/en/configure/app/tools/ts-loader.mdx +1 -1
- package/en/configure/app/tools/webpack-chain.mdx +1 -1
- package/en/configure/app/tools/webpack.mdx +1 -1
- package/modern.config.ts +157 -0
- package/package.json +16 -7
- package/src/components/ContentCard/index.module.scss +61 -0
- package/src/components/ContentCard/index.tsx +25 -0
- package/src/components/FeatureLayout/index.module.css +8 -0
- package/src/components/FeatureLayout/index.tsx +8 -0
- package/src/components/Footer/index.tsx +131 -0
- package/src/components/Footer/styles.module.scss +49 -0
- package/src/components/ListCard/index.module.css +58 -0
- package/src/components/ListCard/index.tsx +26 -0
- package/src/components/SecondaryTitle/index.module.css +14 -0
- package/src/components/SecondaryTitle/index.tsx +15 -0
- package/src/global.d.ts +28 -0
- package/src/i18n/enUS.ts +50 -0
- package/src/i18n/index.ts +18 -0
- package/src/i18n/zhCN.ts +50 -0
- package/src/index.ts +9 -0
- package/src/pages/index.module.scss +238 -0
- package/src/pages/index.tsx +162 -0
- package/static/img/favicon.ico +0 -0
- package/static/img/features/ai.svg +1 -0
- package/static/img/features/api.svg +1 -0
- package/static/img/features/app.svg +1 -0
- package/static/img/features/blocks.svg +1 -0
- package/static/img/features/browser.svg +12 -0
- package/static/img/features/cloud.svg +1 -0
- package/static/img/features/coding-backend.svg +1 -0
- package/static/img/features/compiler.svg +1 -0
- package/static/img/features/css-file.svg +1 -0
- package/static/img/features/customize.svg +1 -0
- package/static/img/features/developer.svg +1 -0
- package/static/img/features/dynamic.svg +1 -0
- package/static/img/features/editor.svg +1 -0
- package/static/img/features/framework-config.svg +1 -0
- package/static/img/features/framework.svg +1 -0
- package/static/img/features/frameworks.svg +1 -0
- package/static/img/features/html.svg +1 -0
- package/static/img/features/icon2.svg +1 -0
- package/static/img/features/javascript.svg +1 -0
- package/static/img/features/monorepo.svg +1 -0
- package/static/img/features/product.svg +1 -0
- package/static/img/features/server-network.svg +1 -0
- package/static/img/features/serverless.svg +1 -0
- package/static/img/features/test.svg +1 -0
- package/static/img/features/trinity.svg +1 -0
- package/static/img/features/unity.svg +1 -0
- package/static/img/features/url.svg +1 -0
- package/static/img/features/visual.svg +1 -0
- package/static/img/features/web-server.svg +1 -0
- package/zh/configure/app/dev/asset-prefix.mdx +1 -1
- package/zh/configure/app/dev/before-start-url.mdx +1 -1
- package/zh/configure/app/dev/hmr.mdx +1 -1
- package/zh/configure/app/dev/host.mdx +1 -1
- package/zh/configure/app/dev/https.mdx +1 -1
- package/zh/configure/app/dev/port.mdx +1 -1
- package/zh/configure/app/dev/progress-bar.mdx +1 -1
- package/zh/configure/app/dev/start-url.mdx +1 -1
- package/zh/configure/app/experiments/lazy-compilation.mdx +1 -1
- package/zh/configure/app/html/app-icon.mdx +1 -1
- package/zh/configure/app/html/crossorigin.mdx +1 -1
- package/zh/configure/app/html/disable-html-folder.mdx +1 -1
- package/zh/configure/app/html/favicon-by-entries.mdx +1 -1
- package/zh/configure/app/html/favicon.mdx +1 -1
- package/zh/configure/app/html/inject-by-entries.mdx +1 -1
- package/zh/configure/app/html/inject.mdx +1 -1
- package/zh/configure/app/html/meta-by-entries.mdx +1 -1
- package/zh/configure/app/html/meta.mdx +1 -1
- package/zh/configure/app/html/mount-id.mdx +1 -1
- package/zh/configure/app/html/tags-by-entries.mdx +1 -1
- package/zh/configure/app/html/tags.mdx +1 -1
- package/zh/configure/app/html/template-by-entries.mdx +1 -1
- package/zh/configure/app/html/template-parameters-by-entries.mdx +1 -1
- package/zh/configure/app/html/template-parameters.mdx +1 -1
- package/zh/configure/app/html/template.mdx +1 -1
- package/zh/configure/app/html/title-by-entries.mdx +1 -1
- package/zh/configure/app/html/title.mdx +1 -1
- package/zh/configure/app/output/asset-prefix.mdx +1 -1
- package/zh/configure/app/output/assets-retry.mdx +1 -1
- package/zh/configure/app/output/charset.mdx +1 -1
- package/zh/configure/app/output/clean-dist-path.mdx +1 -1
- package/zh/configure/app/output/convert-to-rem.mdx +1 -1
- package/zh/configure/app/output/copy.mdx +1 -1
- package/zh/configure/app/output/css-module-local-ident-name.mdx +1 -1
- package/zh/configure/app/output/data-uri-limit.mdx +1 -1
- package/zh/configure/app/output/disable-css-extract.mdx +1 -1
- package/zh/configure/app/output/disable-css-module-extension.mdx +1 -1
- package/zh/configure/app/output/disable-filename-hash.mdx +1 -1
- package/zh/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
- package/zh/configure/app/output/disable-minimize.mdx +1 -1
- package/zh/configure/app/output/disable-source-map.mdx +1 -1
- package/zh/configure/app/output/disable-ts-checker.mdx +1 -1
- package/zh/configure/app/output/dist-path.mdx +1 -1
- package/zh/configure/app/output/enable-asset-fallback.mdx +1 -1
- package/zh/configure/app/output/enable-asset-manifest.mdx +1 -1
- package/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
- package/zh/configure/app/output/enable-inline-scripts.mdx +1 -1
- package/zh/configure/app/output/enable-inline-styles.mdx +1 -1
- package/zh/configure/app/output/enable-latest-decorators.mdx +1 -1
- package/zh/configure/app/output/externals.mdx +1 -1
- package/zh/configure/app/output/filename.mdx +1 -1
- package/zh/configure/app/output/legal-comments.mdx +1 -1
- package/zh/configure/app/output/override-browserslist.mdx +1 -1
- package/zh/configure/app/output/polyfill.mdx +1 -1
- package/zh/configure/app/output/svg-default-export.mdx +1 -1
- package/zh/configure/app/performance/build-cache.mdx +1 -1
- package/zh/configure/app/performance/bundle-analyze.mdx +1 -1
- package/zh/configure/app/performance/chunk-split.mdx +1 -1
- package/zh/configure/app/performance/print-file-size.mdx +1 -1
- package/zh/configure/app/performance/profile.mdx +1 -1
- package/zh/configure/app/performance/remove-console.mdx +1 -1
- package/zh/configure/app/performance/remove-moment-locale.mdx +1 -1
- package/zh/configure/app/security/check-syntax.mdx +1 -1
- package/zh/configure/app/security/sri.mdx +1 -1
- package/zh/configure/app/source/alias.mdx +1 -1
- package/zh/configure/app/source/compile-js-data-uri.mdx +1 -1
- package/zh/configure/app/source/define.mdx +1 -1
- package/zh/configure/app/source/exclude.mdx +1 -1
- package/zh/configure/app/source/global-vars.mdx +1 -1
- package/zh/configure/app/source/include.mdx +1 -1
- package/zh/configure/app/source/module-scopes.mdx +1 -1
- package/zh/configure/app/source/pre-entry.mdx +1 -1
- package/zh/configure/app/source/resolve-extension-prefix.mdx +1 -1
- package/zh/configure/app/source/resolve-main-fields.mdx +1 -1
- package/zh/configure/app/tools/autoprefixer.mdx +1 -1
- package/zh/configure/app/tools/babel.mdx +1 -1
- package/zh/configure/app/tools/css-extract.mdx +1 -1
- package/zh/configure/app/tools/css-loader.mdx +1 -1
- package/zh/configure/app/tools/dev-server.mdx +1 -1
- package/zh/configure/app/tools/html-plugin.mdx +1 -1
- package/zh/configure/app/tools/inspector.mdx +1 -1
- package/zh/configure/app/tools/less.mdx +1 -1
- package/zh/configure/app/tools/minify-css.mdx +1 -1
- package/zh/configure/app/tools/postcss.mdx +1 -1
- package/zh/configure/app/tools/pug.mdx +1 -1
- package/zh/configure/app/tools/rspack.mdx +1 -1
- package/zh/configure/app/tools/sass.mdx +1 -1
- package/zh/configure/app/tools/style-loader.mdx +1 -1
- package/zh/configure/app/tools/styled-components.mdx +1 -1
- package/zh/configure/app/tools/terser.mdx +1 -1
- package/zh/configure/app/tools/ts-checker.mdx +1 -1
- package/zh/configure/app/tools/ts-loader.mdx +1 -1
- package/zh/configure/app/tools/webpack-chain.mdx +1 -1
- package/zh/configure/app/tools/webpack.mdx +1 -1
- package/.eslintrc.js +0 -12
- package/.turbo/turbo-build.log +0 -4
- package/en/apis/app/commands.mdx +0 -297
- package/en/apis/app/hooks/api/framework/lambda.mdx +0 -57
- package/en/apis/app/hooks/api/functions/api.mdx +0 -81
- package/en/apis/app/hooks/src/routes.mdx +0 -90
- package/en/apis/app/hooks/src/server.mdx +0 -34
- package/en/apis/app/runtime/model/connect.mdx +0 -145
- package/en/apis/app/runtime/model/model_.mdx +0 -199
- package/en/apis/app/runtime/model/use-model.mdx +0 -89
- package/en/apis/app/runtime/router/router.mdx +0 -262
- package/en/apis/app/runtime/web-server/hook.mdx +0 -133
- package/en/apis/app/runtime/web-server/middleware.mdx +0 -110
- package/en/components/enable-bff.mdx +0 -31
- package/en/components/init-app.mdx +0 -43
- package/en/components/prerequisites.mdx +0 -20
- package/en/configure/app/output/ssg.mdx +0 -196
- package/en/configure/app/server/enable-framework-ext.mdx +0 -49
- package/en/configure/app/server/public-routes.mdx +0 -26
- package/en/configure/app/server/ssr.mdx +0 -38
- package/en/configure/app/source/design-system.mdx +0 -1175
- package/en/configure/app/source/disable-entry-dirs.mdx +0 -39
- package/en/configure/app/source/entries.mdx +0 -123
- package/en/guides/advanced-features/bff/_category_.json +0 -8
- package/en/guides/advanced-features/code-split.mdx +0 -80
- package/en/guides/advanced-features/compatibility.mdx +0 -78
- package/en/guides/advanced-features/eslint.mdx +0 -150
- package/en/guides/advanced-features/low-level.mdx +0 -45
- package/en/guides/advanced-features/rspack-start.mdx +0 -69
- package/en/guides/advanced-features/ssg.mdx +0 -116
- package/en/guides/advanced-features/ssr.mdx +0 -513
- package/en/guides/advanced-features/testing.mdx +0 -46
- package/en/guides/advanced-features/web-server.mdx +0 -57
- package/en/guides/basic-features/data-fetch.mdx +0 -404
- package/en/guides/basic-features/env-vars.mdx +0 -174
- package/en/guides/basic-features/html.mdx +0 -247
- package/en/guides/basic-features/proxy.mdx +0 -61
- package/en/guides/concept/builder.mdx +0 -47
- package/en/guides/get-started/introduction.mdx +0 -34
- package/en/guides/get-started/quick-start.mdx +0 -162
- package/en/guides/topic-detail/framework-plugin/hook-list.mdx +0 -828
- package/en/guides/topic-detail/framework-plugin/plugin-api.mdx +0 -117
- package/en/guides/topic-detail/generator/codesmith/api/npm.mdx +0 -48
- package/en/guides/topic-detail/generator/codesmith/develop.mdx +0 -53
- package/en/guides/topic-detail/generator/config/app.mdx +0 -82
- package/en/guides/topic-detail/generator/plugin/api/input/addInputAfter.mdx +0 -55
- package/en/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +0 -55
- package/en/guides/topic-detail/generator/plugin/api/npm/install.mdx +0 -18
- package/en/guides/topic-detail/generator/plugin/develop.mdx +0 -125
- package/en/guides/topic-detail/generator/project.mdx +0 -118
- package/en/guides/topic-detail/micro-frontend/c02-development.mdx +0 -256
- package/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -276
- package/en/guides/topic-detail/model/faq.mdx +0 -41
- package/en/guides/topic-detail/model/manage-effects.mdx +0 -260
- package/en/guides/topic-detail/model/model-communicate.mdx +0 -220
- package/en/guides/topic-detail/model/performance.mdx +0 -171
- package/en/guides/topic-detail/model/quick-start.mdx +0 -113
- package/en/guides/topic-detail/model/use-model.mdx +0 -252
- package/en/guides/troubleshooting/cli.mdx +0 -63
- package/en/tutorials/first-app/c03-css.mdx +0 -323
- package/scripts/config.ts +0 -96
- package/scripts/summary.en.json +0 -1
- package/scripts/summary.zh.json +0 -1
- package/scripts/sync.ts +0 -57
- package/tsconfig.json +0 -7
- package/zh/apis/app/commands.mdx +0 -299
- package/zh/apis/app/runtime/model/connect.mdx +0 -143
- package/zh/apis/app/runtime/model/model_.mdx +0 -199
- package/zh/apis/app/runtime/model/use-model.mdx +0 -89
- package/zh/apis/app/runtime/web-server/hook.mdx +0 -134
- package/zh/apis/app/runtime/web-server/middleware.mdx +0 -111
- package/zh/apis/monorepo/commands/gen-release-note.mdx +0 -32
- package/zh/apis/monorepo/commands/new.mdx +0 -39
- package/zh/components/default-mwa-generate.mdx +0 -5
- package/zh/components/enable-bff.mdx +0 -31
- package/zh/components/init-app.mdx +0 -44
- package/zh/components/prerequisites.mdx +0 -20
- package/zh/components/release-note.mdx +0 -1
- package/zh/configure/app/server/enable-framework-ext.mdx +0 -49
- package/zh/guides/advanced-features/bff/_category_.json +0 -8
- package/zh/guides/advanced-features/rspack-start.mdx +0 -69
- package/zh/guides/advanced-features/ssr.mdx +0 -501
- package/zh/guides/advanced-features/web-server.mdx +0 -57
- package/zh/guides/basic-features/mock.mdx +0 -99
- package/zh/guides/concept/builder.mdx +0 -47
- package/zh/guides/get-started/introduction.mdx +0 -31
- package/zh/guides/topic-detail/changesets/changelog.mdx +0 -238
- package/zh/guides/topic-detail/changesets/commit.mdx +0 -271
- package/zh/guides/topic-detail/changesets/github.mdx +0 -164
- package/zh/guides/topic-detail/changesets/release-note.mdx +0 -259
- package/zh/guides/topic-detail/framework-plugin/extend.mdx +0 -163
- package/zh/guides/topic-detail/framework-plugin/hook.mdx +0 -173
- package/zh/guides/topic-detail/framework-plugin/implement.mdx +0 -248
- package/zh/guides/topic-detail/framework-plugin/introduction.mdx +0 -51
- package/zh/guides/topic-detail/framework-plugin/plugin-api.mdx +0 -117
- package/zh/guides/topic-detail/framework-plugin/relationship.mdx +0 -119
- package/zh/guides/topic-detail/generator/plugin/develop.mdx +0 -125
- package/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -29
- package/zh/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -57
- package/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -26
- package/zh/guides/topic-detail/model/auto-actions.mdx +0 -92
- package/zh/guides/topic-detail/model/computed-state.mdx +0 -151
- package/zh/guides/topic-detail/model/define-model.mdx +0 -66
- package/zh/guides/topic-detail/model/faq.mdx +0 -41
- package/zh/guides/topic-detail/model/manage-effects.mdx +0 -260
- package/zh/guides/topic-detail/model/model-communicate.mdx +0 -220
- package/zh/guides/topic-detail/model/performance.mdx +0 -171
- package/zh/guides/topic-detail/model/quick-start.mdx +0 -113
- package/zh/guides/topic-detail/model/redux-integration.mdx +0 -24
- package/zh/guides/topic-detail/model/test-model.mdx +0 -45
- package/zh/guides/topic-detail/model/typescript-best-practice.mdx +0 -71
- package/zh/guides/topic-detail/model/use-model.mdx +0 -252
- package/zh/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -50
- package/zh/guides/topic-detail/monorepo/create-sub-project.mdx +0 -67
- package/zh/guides/topic-detail/monorepo/sub-project-interface.mdx +0 -179
- package/zh/index.md +0 -4
- /package/{en → docs/en}/apis/app/hooks/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/api/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/api/framework/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/api/functions/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/api/functions/app.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/api/functions/common.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/api/test.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/html.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/icon.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/mock.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/public.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/storybook.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/config/upload.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/modern-config.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/server/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/server/index_.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/server/test.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/shared.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/src/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/hooks/src/app.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/src/index_.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/src/pages.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/src/stories.mdx +0 -0
- /package/{en → docs/en}/apis/app/hooks/src/test.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/app/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/app/define-config.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/bff/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/bff/hook.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/bff/use-context.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/core/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/core/bootstrap.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/core/create-app.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/core/use-loader.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/core/use-module-apps.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/core/use-runtime-context.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/Provider.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/auto-actions.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/create-app.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/create-store.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/handle-effect.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/use-local-model.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/use-static-model.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/model/use-store.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/router/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/ssr/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/ssr/no-ssr.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/ssr/pre-render.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/testing/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/testing/act.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/testing/cleanup.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/testing/render.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/testing/renderApp.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/utility/_category_.json +0 -0
- /package/{en → docs/en}/apis/app/runtime/utility/css-in-js.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/utility/head.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/utility/loadable.mdx +0 -0
- /package/{en → docs/en}/apis/app/runtime/web-server/_category_.json +0 -0
- /package/{en → docs/en}/components/debug-app.mdx +0 -0
- /package/{en → docs/en}/components/enable-micro-frontend.mdx +0 -0
- /package/{en → docs/en}/components/global-proxy-config.mdx +0 -0
- /package/{en → docs/en}/components/global-proxy.mdx +0 -0
- /package/{en → docs/en}/components/micro-master-manifest-config.mdx +0 -0
- /package/{en → docs/en}/components/micro-runtime-config.mdx +0 -0
- /package/{en → docs/en}/components/reduck-migration.mdx +0 -0
- /package/{en → docs/en}/components/reduck-tip.mdx +0 -0
- /package/{en → docs/en}/components/router-legacy-tip.mdx +0 -0
- /package/{en → docs/en}/configure/app/auto-load-plugin.mdx +0 -0
- /package/{en → docs/en}/configure/app/bff/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/bff/prefix.mdx +0 -0
- /package/{en → docs/en}/configure/app/bff/proxy.mdx +0 -0
- /package/{en → docs/en}/configure/app/builder-plugins.mdx +0 -0
- /package/{en → docs/en}/configure/app/deploy/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/deploy/microFrontend.mdx +0 -0
- /package/{en → docs/en}/configure/app/dev/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/dev/proxy.mdx +0 -0
- /package/{en → docs/en}/configure/app/experiments/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/html/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/output/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/output/disable-node-polyfill.mdx +0 -0
- /package/{en → docs/en}/configure/app/performance/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/plugins.mdx +0 -0
- /package/{en → docs/en}/configure/app/runtime/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/runtime/intro.mdx +0 -0
- /package/{en → docs/en}/configure/app/runtime/master-app.mdx +0 -0
- /package/{en → docs/en}/configure/app/runtime/router.mdx +0 -0
- /package/{en → docs/en}/configure/app/runtime/state.mdx +0 -0
- /package/{en → docs/en}/configure/app/security/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/server/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/server/base-url.mdx +0 -0
- /package/{en → docs/en}/configure/app/server/port.mdx +0 -0
- /package/{en → docs/en}/configure/app/server/routes.mdx +0 -0
- /package/{en → docs/en}/configure/app/server/ssr-by-entries.mdx +0 -0
- /package/{en → docs/en}/configure/app/source/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/source/config-dir.mdx +0 -0
- /package/{en → docs/en}/configure/app/source/disable-default-entries.mdx +0 -0
- /package/{en → docs/en}/configure/app/source/enable-async-entry.mdx +0 -0
- /package/{en → docs/en}/configure/app/source/entries-dir.mdx +0 -0
- /package/{en → docs/en}/configure/app/testing/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/testing/transformer.mdx +0 -0
- /package/{en → docs/en}/configure/app/tools/_category_.json +0 -0
- /package/{en → docs/en}/configure/app/tools/esbuild.mdx +0 -0
- /package/{en → docs/en}/configure/app/tools/jest.mdx +0 -0
- /package/{en → docs/en}/configure/app/tools/swc.mdx +0 -0
- /package/{en → docs/en}/configure/app/tools/tailwindcss.mdx +0 -0
- /package/{en → docs/en}/configure/app/usage.mdx +0 -0
- /package/{en → docs/en}/guides/advanced-features/_category_.json +0 -0
- /package/{en → docs/en}/guides/advanced-features/bff/bff-proxy.mdx +0 -0
- /package/{en → docs/en}/guides/advanced-features/bff/frameworks.mdx +0 -0
- /package/{en → docs/en}/guides/advanced-features/bff/function.mdx +0 -0
- /package/{en → docs/en}/guides/advanced-features/bff/index.mdx +0 -0
- /package/{en → docs/en}/guides/advanced-features/bff/type.mdx +0 -0
- /package/{en → docs/en}/guides/basic-features/_category_.json +0 -0
- /package/{en → docs/en}/guides/basic-features/alias.mdx +0 -0
- /package/{en → docs/en}/guides/basic-features/css.mdx +0 -0
- /package/{en → docs/en}/guides/basic-features/mock.mdx +0 -0
- /package/{en → docs/en}/guides/basic-features/routes.mdx +0 -0
- /package/{en → docs/en}/guides/concept/_category_.json +0 -0
- /package/{en → docs/en}/guides/concept/entries.mdx +0 -0
- /package/{en → docs/en}/guides/get-started/_category_.json +0 -0
- /package/{en → docs/en}/guides/get-started/upgrade.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/framework-plugin/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/framework-plugin/lifecycle.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/app.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/ejs.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/fs.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/git.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/handlebars.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/api/json.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/introduce.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/run-in-js.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/codesmith/structure.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/config/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/config/common.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/config/module.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/config/monorepo.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/abstract.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/addFile.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/addHelper.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/addManyFile.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/addPartial.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/introduce.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/rmDir.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/rmFile.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/updateJSONFile.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/updateModernConfig.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/git/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/git/gitAddAndCommit.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/git/initGitRepo.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/git/isInGitRepo.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/hook/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/hook/afterForged.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/hook/onForged.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/info/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/info/isFileExit.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/info/locale.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/info/readDir.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/input/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/input/setInput.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/input/setInputValue.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/input/type.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/introduce.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/new/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/new/createElement.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/new/createSubProject.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/new/enableFunc.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/new/introduce.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/api/npm/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/generator/plugin/use.mdx +0 -0
- /package/{en → docs/en}/guides/topic-detail/micro-frontend/_category_.json +0 -0
- /package/{en → docs/en}/guides/topic-detail/model/_category_.json +0 -0
- /package/{en → docs/en}/guides/troubleshooting/_category_.json +0 -0
- /package/{en → docs/en}/index.md +0 -0
- /package/{en → docs/en}/tutorials/first-app/_category_.json +0 -0
- /package/{en → docs/en}/tutorials/first-app/c01-start.mdx +0 -0
- /package/{en → docs/en}/tutorials/first-app/c02-component.mdx +0 -0
- /package/{en → docs/en}/tutorials/first-app/c04-routes.mdx +0 -0
- /package/{en → docs/en}/tutorials/first-app/c05-loader.mdx +0 -0
- /package/{en → docs/en}/tutorials/first-app/c06-model.mdx +0 -0
- /package/{en → docs/en}/tutorials/first-app/c07-container.mdx +0 -0
- /package/{en → docs/en}/tutorials/first-app/c08-entries.mdx +0 -0
- /package/{en → docs/en}/tutorials/foundations/_category_.json +0 -0
- /package/{en → docs/en}/tutorials/foundations/introduction.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/framework/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/framework/lambda.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/functions/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/functions/api.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/functions/app.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/functions/common.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/api/test.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/html.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/icon.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/mock.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/public.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/storybook.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/config/upload.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/modern-config.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/server/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/server/index_.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/server/test.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/shared.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/app.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/index_.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/pages.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/routes.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/server.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/stories.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/hooks/src/test.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/app/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/app/define-config.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/bff/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/bff/hook.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/bff/use-context.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/core/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/core/bootstrap.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/core/create-app.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/core/use-loader.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/core/use-module-apps.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/core/use-runtime-context.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/Provider.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/auto-actions.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/create-app.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/create-store.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/handle-effect.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/use-local-model.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/use-static-model.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/model/use-store.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/router/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/router/router.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/ssr/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/ssr/no-ssr.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/ssr/pre-render.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/testing/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/testing/act.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/testing/cleanup.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/testing/render.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/testing/renderApp.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/utility/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/utility/css-in-js.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/utility/head.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/utility/loadable.mdx +0 -0
- /package/{zh → docs/zh}/apis/app/runtime/web-server/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/bump.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/change.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/clear.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/deploy.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/index.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/lint.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/pre.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/release.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/commands/upgrade.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/_category_.json +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/apps.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/code-workspace.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/examples.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/features.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/index.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/packages.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/pnpm-workspace.mdx +0 -0
- /package/{zh → docs/zh}/apis/monorepo/hooks/pnpmfile.mdx +0 -0
- /package/{zh → docs/zh}/blog/index.md +0 -0
- /package/{zh → docs/zh}/community/index.mdx +0 -0
- /package/{zh → docs/zh}/components/custom-router-micro-frontend.mdx +0 -0
- /package/{zh → docs/zh}/components/debug-app.mdx +0 -0
- /package/{zh → docs/zh}/components/deploy.mdx +0 -0
- /package/{zh → docs/zh}/components/enable-micro-frontend.mdx +0 -0
- /package/{zh → docs/zh}/components/global-proxy-config.mdx +0 -0
- /package/{zh → docs/zh}/components/global-proxy.mdx +0 -0
- /package/{zh → docs/zh}/components/micro-master-manifest-config.mdx +0 -0
- /package/{zh → docs/zh}/components/micro-runtime-config.mdx +0 -0
- /package/{zh → docs/zh}/components/reduck-migration.mdx +0 -0
- /package/{zh → docs/zh}/components/reduck-tip.mdx +0 -0
- /package/{zh → docs/zh}/components/router-legacy-tip.mdx +0 -0
- /package/{zh → docs/zh}/components/self-route-example.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/auto-load-plugin.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/bff/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/bff/prefix.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/bff/proxy.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/builder-plugins.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/deploy/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/deploy/microFrontend.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/dev/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/dev/proxy.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/experiments/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/html/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/output/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/output/disable-node-polyfill.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/output/ssg.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/performance/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/plugins.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/runtime/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/runtime/intro.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/runtime/master-app.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/runtime/router.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/runtime/state.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/security/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/server/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/server/base-url.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/server/port.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/server/public-routes.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/server/routes.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/server/ssr-by-entries.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/server/ssr.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/source/config-dir.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/design-system.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/disable-default-entries.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/disable-entry-dirs.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/enable-async-entry.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/entries-dir.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/source/entries.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/testing/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/testing/transformer.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/tools/_category_.json +0 -0
- /package/{zh → docs/zh}/configure/app/tools/esbuild.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/tools/jest.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/tools/swc.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/tools/tailwindcss.mdx +0 -0
- /package/{zh → docs/zh}/configure/app/usage.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/bff/bff-proxy.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/bff/frameworks.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/bff/function.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/bff/index.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/bff/type.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/code-split.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/compatibility.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/eslint.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/low-level.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/ssg.mdx +0 -0
- /package/{zh → docs/zh}/guides/advanced-features/testing.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/basic-features/alias.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/css.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/data-fetch.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/env-vars.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/html.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/proxy.mdx +0 -0
- /package/{zh → docs/zh}/guides/basic-features/routes.mdx +0 -0
- /package/{zh → docs/zh}/guides/concept/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/concept/entries.mdx +0 -0
- /package/{zh → docs/zh}/guides/get-started/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/get-started/quick-start.mdx +0 -0
- /package/{zh → docs/zh}/guides/get-started/upgrade.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/changesets/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/changesets/add.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/changesets/config.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/changesets/introduce.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/changesets/release-pre.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/changesets/release.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/framework-plugin/_category_.json +0 -0
- /package/{en → docs/zh}/guides/topic-detail/framework-plugin/extend.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/framework-plugin/hook-list.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/framework-plugin/hook.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/framework-plugin/implement.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/framework-plugin/introduction.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/framework-plugin/lifecycle.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/framework-plugin/relationship.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/app.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/ejs.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/fs.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/git.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/handlebars.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/json.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/api/npm.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/develop.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/introduce.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/run-in-js.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/codesmith/structure.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/config/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/config/app.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/config/common.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/config/module.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/config/monorepo.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/abstract.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/addFile.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/addHelper.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/addManyFile.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/addPartial.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/introduce.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/rmDir.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/rmFile.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/updateJSONFile.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/updateModernConfig.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/git/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/git/gitAddAndCommit.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/git/initGitRepo.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/git/isInGitRepo.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/hook/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/hook/afterForged.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/hook/onForged.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/info/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/info/isFileExit.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/info/locale.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/info/readDir.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/input/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/input/addInputAfter.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/input/setInput.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/input/setInputValue.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/input/type.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/introduce.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/new/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/new/createElement.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/new/createSubProject.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/new/enableFunc.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/new/introduce.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/npm/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/api/npm/install.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/plugin/use.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/generator/project.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/micro-frontend/_category_.json +0 -0
- /package/{en → docs/zh}/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/micro-frontend/c02-development.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/model/_category_.json +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/auto-actions.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/computed-state.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/define-model.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/redux-integration.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/test-model.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/typescript-best-practice.mdx +0 -0
- /package/{en → docs/zh}/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/monorepo/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/monorepo/intro.mdx +0 -0
- /package/{zh → docs/zh}/guides/topic-detail/monorepo/publish.mdx +0 -0
- /package/{zh → docs/zh}/guides/troubleshooting/_category_.json +0 -0
- /package/{zh → docs/zh}/guides/troubleshooting/cli.mdx +0 -0
- /package/{zh → docs/zh}/guides/troubleshooting/dependencies.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/_category_.json +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c01-start.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c02-component.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c03-css.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c04-routes.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c05-loader.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c06-model.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c07-container.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/first-app/c08-entries.mdx +0 -0
- /package/{zh → docs/zh}/tutorials/foundations/_category_.json +0 -0
- /package/{zh → docs/zh}/tutorials/foundations/introduction.mdx +0 -0
@@ -0,0 +1,222 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 7
|
3
|
+
title: Model Communication
|
4
|
+
---
|
5
|
+
|
6
|
+
# Model Communication
|
7
|
+
|
8
|
+
Model communication refers to communication between different Models, as well as communication between Effects and Actions within the same Model.
|
9
|
+
|
10
|
+
## Communication between Models
|
11
|
+
|
12
|
+
Models are not isolated from each other and can communicate with each other. There are mainly two scenarios:
|
13
|
+
|
14
|
+
1. Accessing the State and Actions of other Models in the Model.
|
15
|
+
2. Listening to changes in other Models in the Model.
|
16
|
+
|
17
|
+
Here, we will transform the simple counter application in the [Quick Start](/guides/topic-detail/model/quick-start) section into a counter application that allows you to set the step frequency. By setting the step frequency, you can affect the magnitude of each counter increase.
|
18
|
+
|
19
|
+
We abstract two Models, `stepModel` (step frequency) and `counterModel` (counter):
|
20
|
+
|
21
|
+
```ts
|
22
|
+
import { model } from '@modern-js/runtime/model';
|
23
|
+
|
24
|
+
const stepModel = model('step').define({
|
25
|
+
state: 1,
|
26
|
+
});
|
27
|
+
|
28
|
+
const counterModel = model('count').define((context, { use, onMount }) => {
|
29
|
+
const [, , subscribeStep] = use(stepModel);
|
30
|
+
|
31
|
+
onMount(() => {
|
32
|
+
return subscribeStep(() => {
|
33
|
+
console.log(
|
34
|
+
`Subscribe in counterModel: stepModel change to ${use(stepModel)[0]}`,
|
35
|
+
);
|
36
|
+
});
|
37
|
+
});
|
38
|
+
|
39
|
+
return {
|
40
|
+
state: {
|
41
|
+
value: 1,
|
42
|
+
},
|
43
|
+
actions: {
|
44
|
+
add(state) {
|
45
|
+
const step = use(stepModel)[0];
|
46
|
+
state.value += step;
|
47
|
+
},
|
48
|
+
},
|
49
|
+
};
|
50
|
+
});
|
51
|
+
|
52
|
+
export { stepModel, counterModel };
|
53
|
+
```
|
54
|
+
|
55
|
+
`stepModel` declares only one `state`, with an initial value of 1.
|
56
|
+
|
57
|
+
`counterModel` loads `stepModel` with the `use` function, and retrieves the returned `subscribeStep` function to listen for changes to the `stepModel` state. `onMount` is a hook function that is executed after the Model is mounted. `counterModel` begins to subscribe to the state changes of `stepModel` after it has been mounted, and prints out the latest value of `stepModel`.
|
58
|
+
|
59
|
+
`counterModel` accesses `stepModel` using the `use` function, and in the `add` function, the current value of `stepModel` (step frequency) can be obtained to perform increments using this value.
|
60
|
+
|
61
|
+
:::caution Note
|
62
|
+
When you need to access the state of another Model, you must call `use` during the actual execution phase of the current Actions or Effects function (in this example, the `add` function) to ensure that the obtained State is the latest value. Therefore, although we also call `use(stepModel)` in the callback function of `define`, we do not destructure the `state` value of `stepModel` because the callback function of `define` is executed during the mounting phase of the Model, and at this time, the `state` of `stepModel` obtained may be different from the value obtained when `add` is executed.
|
63
|
+
:::
|
64
|
+
|
65
|
+
Modify App.tsx:
|
66
|
+
|
67
|
+
```tsx
|
68
|
+
import { useModel } from '@modern-js/runtime/model';
|
69
|
+
import { counterModel, stepModel } from './models/count';
|
70
|
+
|
71
|
+
function Counter() {
|
72
|
+
const [state, actions] = useModel(counterModel);
|
73
|
+
const [step, stepActions] = useModel(stepModel);
|
74
|
+
|
75
|
+
return (
|
76
|
+
<div>
|
77
|
+
<div>step: {step}</div>
|
78
|
+
<button onClick={() => stepActions.setState(step + 1)}>add step</button>
|
79
|
+
<div>counter: {state.value}</div>
|
80
|
+
<button onClick={() => actions.add()}>add counter</button>
|
81
|
+
</div>
|
82
|
+
);
|
83
|
+
}
|
84
|
+
|
85
|
+
export default function App() {
|
86
|
+
return <Counter />;
|
87
|
+
}
|
88
|
+
```
|
89
|
+
|
90
|
+
:::info Additional Information
|
91
|
+
Modern.js has enabled [auto-generate actions](./auto-actions.mdx) by default, so even though there are no Actions defined manually in the `stepModel`, the auto-generated `setState` can still be used.
|
92
|
+
|
93
|
+
:::
|
94
|
+
|
95
|
+
- Click **add step** to add steps.
|
96
|
+
- Click **add counter** to trigger the counter to increase.
|
97
|
+
|
98
|
+
The final effect is as follows:
|
99
|
+
|
100
|
+

|
101
|
+
|
102
|
+
:::info Additional Information
|
103
|
+
- Full example code for this section can be found [here](https://github.com/web-infra-dev/modern-js-examples/tree/main/series/tutorials/runtime-api/model/models-communication).
|
104
|
+
- For more information about the relevant API, please refer to: [model](/apis/app/runtime/model/model_#function-types).
|
105
|
+
|
106
|
+
:::
|
107
|
+
|
108
|
+
In the previous example of `counterModel`, we called `use` within the Actions function to get other Model objects. If we only need to call Actions of other Models, we can also use `use` to get the Actions of Models in the `define` callback function because Actions are functions and there is no issue of value expiration. For example:
|
109
|
+
|
110
|
+
```ts
|
111
|
+
const barModel = model('bar').define({
|
112
|
+
// ..
|
113
|
+
});
|
114
|
+
|
115
|
+
const fooModel = model('foo').define((context, utils) => {
|
116
|
+
// get barModel actions
|
117
|
+
const [, actions] = utils.use(barModel);
|
118
|
+
return {
|
119
|
+
// ...
|
120
|
+
effects: {
|
121
|
+
async loadA() {
|
122
|
+
// ...
|
123
|
+
// invoke barModel action
|
124
|
+
barModel.actionA();
|
125
|
+
},
|
126
|
+
async loadB() {
|
127
|
+
// ...
|
128
|
+
// invoke barModel action
|
129
|
+
barModel.actionB();
|
130
|
+
},
|
131
|
+
},
|
132
|
+
};
|
133
|
+
});
|
134
|
+
```
|
135
|
+
|
136
|
+
Here, we no longer need to repeatedly get the `barModel` object in `loadA` and `loadB`, which simplifies the code logic.
|
137
|
+
|
138
|
+
## Communication within a Model
|
139
|
+
|
140
|
+
Communication within a Model can also be divided into two main scenarios:
|
141
|
+
|
142
|
+
1. Effects functions call the Actions functions of the same Model or other Effects functions.
|
143
|
+
2. Actions functions call other Actions functions of the same Model.
|
144
|
+
|
145
|
+
In the [Managing Side Effects](/guides/topic-detail/model/manage-effects) section, we demonstrated how Effects functions call Actions functions.
|
146
|
+
|
147
|
+
Here we provide another example:
|
148
|
+
|
149
|
+
```ts
|
150
|
+
const fooModel = model('foo').define((context, { use, onMount }) => ({
|
151
|
+
state: {
|
152
|
+
a: '',
|
153
|
+
b: '',
|
154
|
+
},
|
155
|
+
actions: {
|
156
|
+
setA(state, payload) {
|
157
|
+
state.a = payload;
|
158
|
+
},
|
159
|
+
setB(state, payload) {
|
160
|
+
state.a = payload;
|
161
|
+
},
|
162
|
+
},
|
163
|
+
effects: {
|
164
|
+
async loadA() {
|
165
|
+
// get current Model actions
|
166
|
+
const [, actions] = use(fooModel);
|
167
|
+
const res = await mockFetchA();
|
168
|
+
actions.setA(res);
|
169
|
+
},
|
170
|
+
async loadB() {
|
171
|
+
// get current Model actions
|
172
|
+
const [, actions] = use(fooModel);
|
173
|
+
const res = await mockFetchB();
|
174
|
+
actions.setB(res);
|
175
|
+
},
|
176
|
+
},
|
177
|
+
}));
|
178
|
+
```
|
179
|
+
|
180
|
+
In this example, the two Effects functions of `fooModel` need to call their own Actions functions. Here, we have called `use` once in each Effects function. Why can't we use `use` to get the Actions of the Model itself in the `define` callback function, as in the example of Model communication? This is because when calling `use` to get a Model, it first checks whether the Model has been mounted. If it has not been mounted, the mounting logic will be executed first.
|
181
|
+
|
182
|
+
The `define` callback function is executed during the mounting phase, so calling `use` to get the Model itself during the mounting phase will result in an infinite loop (which will throw an error in the actual execution process). Therefore, **you must not call `use` in the `define` callback function to get the Model itself**.
|
183
|
+
|
184
|
+
However, we can use the `onMount` hook function to get the Model itself through `use` after the Model has been mounted:
|
185
|
+
|
186
|
+
```ts
|
187
|
+
const fooModel = model('foo').define((context, { use, onMount }) => {
|
188
|
+
let actions;
|
189
|
+
|
190
|
+
onMount(() => {
|
191
|
+
// after fooModel mounted,get actions
|
192
|
+
[, actions] = use(fooModel);
|
193
|
+
});
|
194
|
+
|
195
|
+
return {
|
196
|
+
state: {
|
197
|
+
a: '',
|
198
|
+
b: '',
|
199
|
+
},
|
200
|
+
actions: {
|
201
|
+
setA(state, payload) {
|
202
|
+
state.a = payload;
|
203
|
+
},
|
204
|
+
setB(state, payload) {
|
205
|
+
state.a = payload;
|
206
|
+
},
|
207
|
+
},
|
208
|
+
effects: {
|
209
|
+
async loadA() {
|
210
|
+
const res = await mockFetchA();
|
211
|
+
actions.setA(res);
|
212
|
+
},
|
213
|
+
async loadB() {
|
214
|
+
const res = await mockFetchB();
|
215
|
+
actions.setB(res);
|
216
|
+
},
|
217
|
+
},
|
218
|
+
};
|
219
|
+
});
|
220
|
+
```
|
221
|
+
|
222
|
+
In this way, we can also simplify the code.
|
@@ -0,0 +1,170 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 8
|
3
|
+
title: Performance Optimization
|
4
|
+
---
|
5
|
+
# Performance Optimization
|
6
|
+
|
7
|
+
Reduck has already done a lot of performance optimization work internally, so performance issues generally do not need to be considered. However, when performance is more sensitive, or when encountering performance issues, you can consider more targeted performance optimization from the following three aspects.
|
8
|
+
|
9
|
+
## Splitting Models
|
10
|
+
|
11
|
+
When `useModel` returns the complete State object of the Model, any change in any part of the State will cause the component that calls `useModel` to be re-rendered.
|
12
|
+
|
13
|
+
For example:
|
14
|
+
|
15
|
+
```ts
|
16
|
+
const fooModel = model('foo').define({
|
17
|
+
state: {
|
18
|
+
a: '',
|
19
|
+
b: '',
|
20
|
+
},
|
21
|
+
actions: {
|
22
|
+
setA(state, payload) {
|
23
|
+
state.a = payload;
|
24
|
+
},
|
25
|
+
setB(state, payload) {
|
26
|
+
state.b = payload;
|
27
|
+
},
|
28
|
+
},
|
29
|
+
});
|
30
|
+
|
31
|
+
function ComponentA() {
|
32
|
+
const [state] = useModel(fooModel);
|
33
|
+
|
34
|
+
return <div>{state.a}</div>;
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|
38
|
+
Although `ComponentA` only needs to use the `a` state, it will still be re-rendered when the `b` state changes. In this case, we can consider splitting `fooModel` into separate Models responsible for managing `a` and `b` respectively:
|
39
|
+
|
40
|
+
```ts
|
41
|
+
const fooModel = model('foo').define({
|
42
|
+
state: {
|
43
|
+
a: '',
|
44
|
+
},
|
45
|
+
actions: {
|
46
|
+
setA(state, payload) {
|
47
|
+
state.a = payload;
|
48
|
+
},
|
49
|
+
},
|
50
|
+
});
|
51
|
+
|
52
|
+
const barModel = model('bar').define({
|
53
|
+
state: {
|
54
|
+
b: '',
|
55
|
+
},
|
56
|
+
actions: {
|
57
|
+
setB(state, payload) {
|
58
|
+
state.b = payload;
|
59
|
+
},
|
60
|
+
},
|
61
|
+
});
|
62
|
+
```
|
63
|
+
|
64
|
+
## State Selection
|
65
|
+
|
66
|
+
`useModel` supports passing in a selector function to filter the returned State and Actions for the component. We can use a selector function to ensure that the State returned to the component is what the component needs directly, thus ensuring that the component is not re-rendered due to changes in other unrelated states.
|
67
|
+
|
68
|
+
For the same example above, we can use a selector function for performance optimization, the code is as follows:
|
69
|
+
|
70
|
+
```ts
|
71
|
+
const fooModel = model('foo').define({
|
72
|
+
state: {
|
73
|
+
a: '',
|
74
|
+
b: '',
|
75
|
+
},
|
76
|
+
actions: {
|
77
|
+
setA(state, payload) {
|
78
|
+
state.a = payload;
|
79
|
+
},
|
80
|
+
setB(state, payload) {
|
81
|
+
state.b = payload;
|
82
|
+
},
|
83
|
+
},
|
84
|
+
});
|
85
|
+
|
86
|
+
function ComponentA() {
|
87
|
+
// 通过传入 selector 函数,只返回 a 状态给组件
|
88
|
+
const [stateA] = useModel(fooModel, state => state.a);
|
89
|
+
|
90
|
+
return <div>{stateA}</div>;
|
91
|
+
}
|
92
|
+
```
|
93
|
+
|
94
|
+
## Derivative State Caching
|
95
|
+
|
96
|
+
When a Model has `computed` property, the `computed` function will be executed every time `useModel` is called.
|
97
|
+
|
98
|
+
Consider the following code:
|
99
|
+
|
100
|
+
```ts
|
101
|
+
const barModel = model('bar').define({
|
102
|
+
state: {
|
103
|
+
value: 'bar',
|
104
|
+
},
|
105
|
+
computed: {
|
106
|
+
combineA: [
|
107
|
+
fooModel, // fooModel define as above
|
108
|
+
(state, fooState) => {
|
109
|
+
return state + fooState.a;
|
110
|
+
},
|
111
|
+
],
|
112
|
+
},
|
113
|
+
actions: {
|
114
|
+
setValue(state, payload) {
|
115
|
+
state.value = payload;
|
116
|
+
},
|
117
|
+
},
|
118
|
+
});
|
119
|
+
|
120
|
+
function ComponentB() {
|
121
|
+
const [state, actions] = useModel(fooModel);
|
122
|
+
const [{ combineA }] = useModel(barModel);
|
123
|
+
// ...
|
124
|
+
}
|
125
|
+
```
|
126
|
+
Even if the `b` state of `fooModel` changes, the `combineA` function (more precisely, the last function type element of `combineA`) will still be called and executed when the component is re-rendered, although the derivative state `combineA` of `barModel` depends on `barModel` itself and the state `a` of `fooModel`.
|
127
|
+
|
128
|
+
In general, the logic in the `computed` function is usually very lightweight, but when the logic in the `computed` function is relatively complex, we can consider caching the calculation logic. For example, we can use [reselect](https://github.com/reduxjs/reselect) to cache `combineA` of `barModel`:
|
129
|
+
|
130
|
+
```ts
|
131
|
+
import 'createSelector' from 'reselect';
|
132
|
+
|
133
|
+
// create cache function
|
134
|
+
const selectCombineA = createSelector(
|
135
|
+
(state) => state.bar.value,
|
136
|
+
(state) => state.foo.a,
|
137
|
+
(barState, fooState) => {
|
138
|
+
return barState + fooState;
|
139
|
+
}
|
140
|
+
);
|
141
|
+
|
142
|
+
const barModel = model("bar").define({
|
143
|
+
state: {
|
144
|
+
value: "bar",
|
145
|
+
},
|
146
|
+
computed: {
|
147
|
+
combineA: [
|
148
|
+
fooModel,
|
149
|
+
(state, fooState) => {
|
150
|
+
return selectCombineA({
|
151
|
+
foo: fooState,
|
152
|
+
bar: state,
|
153
|
+
});
|
154
|
+
},
|
155
|
+
],
|
156
|
+
},
|
157
|
+
actions: {
|
158
|
+
setValue(state, payload) {
|
159
|
+
state.value = payload;
|
160
|
+
},
|
161
|
+
},
|
162
|
+
});
|
163
|
+
```
|
164
|
+
|
165
|
+
We created a caching function `createSelector`, which only recalculates the value of `combineA` when the state of `barModel` changes or the state `a` of `fooModel` changes.
|
166
|
+
|
167
|
+
:::info Additional Information
|
168
|
+
You can find the complete example code of this section [here](https://github.com/web-infra-dev/modern-js-examples/tree/main/series/tutorials/runtime-api/model/performance-optimization).
|
169
|
+
:::
|
170
|
+
|
@@ -0,0 +1,114 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 1
|
3
|
+
title: Quick Start
|
4
|
+
---
|
5
|
+
# Quick Start
|
6
|
+
|
7
|
+
import ReduckMigration from "@site-docs/components/reduck-migration"
|
8
|
+
|
9
|
+
<ReduckMigration />
|
10
|
+
|
11
|
+
[Reduck](https://github.com/web-infra-dev/reduck) is a state management library developed by the Modern.js team that follows the MVC pattern. Its underlying state storage is based on [Redux](https://redux.js.org/) implementation, while providing a higher level of abstraction and full compatibility with the Redux ecosystem.
|
12
|
+
|
13
|
+
The goal of Reduck is to organize the development structure of React applications in the MVC pattern, maintain business logic in the Model layer, decoupling business logic from UI, making it easier for developers to focus on business logic, and reducing duplicated work (boilerplate code) through higher level of abstraction.
|
14
|
+
|
15
|
+
In the MVC pattern, Reduck plays the role of M(Model), React UI Component corresponds to V(View), and gets the Model from Reduck and modifies the Model's React Container Component, which corresponds to C(View Controller/Container).
|
16
|
+
|
17
|
+
The state management solution of Modern.js is implemented through built-in Reduck. Using Reduck in Modern.js not only eliminates the manual integration process, but also allows all Reduck APIs to be imported and used directly from the Modern.js Runtime package, providing a better consistency experience.
|
18
|
+
|
19
|
+
:::info
|
20
|
+
1. To use Reduck APIs in Modern.js, you need to set [runtime.state](/configure/app/runtime/state) to enable the state management plugin.
|
21
|
+
2. Reduck can also be used separately as a state management library [outside of Modern.js](/guides/topic-detail/model/use-out-of-modernjs).
|
22
|
+
|
23
|
+
:::
|
24
|
+
|
25
|
+
## Core Concepts
|
26
|
+
|
27
|
+
There are only four core concepts in Reduck: Model, State, Actions, and Effects.
|
28
|
+
|
29
|
+
Model: Encapsulates the logic and required state of an independent module, consisting of State, Actions, and Effects.
|
30
|
+
|
31
|
+
State: The state stored in the Model.
|
32
|
+
|
33
|
+
Actions: Pure functions used to modify State, functions must be **Synchronous**.
|
34
|
+
|
35
|
+
Effects: Functions with side effects used to modify State, functions can be **Asynchronous**. Effects can call their own Actions and Effects or those of other Models.
|
36
|
+
|
37
|
+
The Reduck data flow is shown in the following figure:
|
38
|
+
|
39
|
+

|
40
|
+
|
41
|
+
## Basic Usage
|
42
|
+
|
43
|
+
Next, let's take a simple **Counter** application as an example to demonstrate the basic usage of Reduck.
|
44
|
+
|
45
|
+
First, we define a Model named `count`:
|
46
|
+
|
47
|
+
```js
|
48
|
+
import { model } from '@modern-js/runtime/model';
|
49
|
+
|
50
|
+
const countModel = model('count').define({
|
51
|
+
state: {
|
52
|
+
value: 1,
|
53
|
+
},
|
54
|
+
});
|
55
|
+
|
56
|
+
export default countModel;
|
57
|
+
```
|
58
|
+
|
59
|
+
We use the API `model` to create `countModel`, which currently only contains the state that stores the counter `value`, that is, value in the code.
|
60
|
+
|
61
|
+
We define an action to increase the counter by 1:
|
62
|
+
|
63
|
+
```js
|
64
|
+
import { model } from '@modern-js/runtime/model';
|
65
|
+
|
66
|
+
const countModel = model('count').define({
|
67
|
+
state: {
|
68
|
+
value: 1,
|
69
|
+
},
|
70
|
+
actions: {
|
71
|
+
add(state) {
|
72
|
+
state.value += 1;
|
73
|
+
},
|
74
|
+
},
|
75
|
+
});
|
76
|
+
|
77
|
+
export default countModel;
|
78
|
+
```
|
79
|
+
|
80
|
+
In the `add` action, we can directly modify the value of the state and perform the increment operation without treating the state as an immutable object. This is because Reduck integrates [immer](https://github.com/immerjs/immer), which can directly modify the original state object.
|
81
|
+
|
82
|
+
Next, we will demonstrate how to use the Model in a component.
|
83
|
+
|
84
|
+
Create a new component called `Counter`, and use the `countModel` via the `useModel` API inside the component:
|
85
|
+
|
86
|
+
```js
|
87
|
+
import { useModel } from '@modern-js/runtime/model';
|
88
|
+
import countModel from './models/count';
|
89
|
+
|
90
|
+
function Counter() {
|
91
|
+
const [state, actions] = useModel(countModel);
|
92
|
+
|
93
|
+
return (
|
94
|
+
<div>
|
95
|
+
<div>counter: {state.value}</div>
|
96
|
+
<button onClick={() => actions.add()}>add</button>
|
97
|
+
</div>
|
98
|
+
);
|
99
|
+
}
|
100
|
+
```
|
101
|
+
|
102
|
+
`useModel` gets the `state` and `actions` of `countModel`. The component displays the current value of the counter, and clicking the `add` button increments the counter by 1.
|
103
|
+
|
104
|
+
:::info
|
105
|
+
Due to the simplicity of the example used here, the layering of the MVC pattern is not strictly followed. The `Counter` component acts as both the V and C layers.
|
106
|
+
|
107
|
+
:::
|
108
|
+
|
109
|
+
The final demonstration effect is as follows:
|
110
|
+
|
111
|
+

|
112
|
+
|
113
|
+
That completes a simple counter application. You can view the complete example code for this section [here](https://github.com/web-infra-dev/modern-js-examples/tree/main/series/tutorials/runtime-api/model/counter-model).
|
114
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 11
|
3
|
+
title: Ecosystem Integration
|
4
|
+
---
|
5
|
+
# Redux Ecosystem Integration
|
6
|
+
|
7
|
+
Reduck is based on Redux, so you can use libraries from the [Redux ecosystem](https://redux.js.org/introduction/ecosystem) to enhance its functionality. APIs like [`Provider`](/apis/app/runtime/model/Provider), [`createApp`](/apis/app/runtime/model/create-app), and [`createStore`](/apis/app/runtime/model/create-store) allow you to configure the use of [middlewares](https://redux.js.org/understanding/thinking-in-redux/glossary#middleware) and [store enhancers](https://redux.js.org/understanding/thinking-in-redux/glossary#store-enhancer); and using [`createStore`](/apis/app/runtime/model/create-store), you can take complete control over the process of creating the store.
|
8
|
+
|
9
|
+
For example, if we want to use the middleware [`redux-logger`](https://github.com/LogRocket/redux-logger), the example code is as follows:
|
10
|
+
|
11
|
+
|
12
|
+
```ts
|
13
|
+
ReactDOM.render(
|
14
|
+
<Provider config={{ middlewares: [logger] }}>
|
15
|
+
// Set middleware through the config parameter of Provider
|
16
|
+
<App />
|
17
|
+
</Provider>,
|
18
|
+
document.getElementById('root'),
|
19
|
+
);
|
20
|
+
```
|
21
|
+
|
22
|
+
:::caution
|
23
|
+
Reduck is built on top of the lower-level Redux API, and abstracts away some of the underlying concepts of Redux, such as Reducers. Reduck allows models to be dynamically mounted, whereas Redux mounts all the necessary state at Store creation time. Due to these implementation differences, some libraries from the Redux ecosystem cannot be used directly in Reduck.
|
24
|
+
:::
|
@@ -0,0 +1,45 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 9
|
3
|
+
title: Test Model
|
4
|
+
---
|
5
|
+
# Test Model
|
6
|
+
|
7
|
+
Testing is crucial for the stability of code. Here's an example using the `countModel` from [Quick Start](/guides/topic-detail/model/quick-start) to demonstrate how to perform unit testing on a Model in Modern.js.
|
8
|
+
|
9
|
+
To use the testing feature, you need to first enable it. In the project root directory, execute `pnpm run new` and make the following selection:
|
10
|
+
|
11
|
+
```bash
|
12
|
+
? Please select the operation you want to perform: Enable optional features
|
13
|
+
? Enable optional features Enable "Unit Testing / Integration Testing" feature
|
14
|
+
```
|
15
|
+
|
16
|
+
This will enable testing feature support.
|
17
|
+
|
18
|
+
Create a new file called `count.test.ts` with the following code:
|
19
|
+
|
20
|
+
```ts
|
21
|
+
import { createStore } from '@modern-js/runtime/testing';
|
22
|
+
import countModel from './count';
|
23
|
+
|
24
|
+
describe('test model', () => {
|
25
|
+
it('count value should plus one after add', () => {
|
26
|
+
const store = createStore();
|
27
|
+
const [state, { add }] = store.use(countModel);
|
28
|
+
|
29
|
+
expect(state).toEqual({ value: 1 });
|
30
|
+
|
31
|
+
add();
|
32
|
+
|
33
|
+
expect(store.use(countModel)[0]).toEqual({ value: 2 });
|
34
|
+
});
|
35
|
+
});
|
36
|
+
```
|
37
|
+
|
38
|
+
:::info
|
39
|
+
The [`createStore`](/apis/app/runtime/model/create-store) used here is imported from `@modern-js/runtime/testing`, which internally uses the configuration of [`runtime.state`](/configure/app/runtime/state) to create a `store`.
|
40
|
+
|
41
|
+
:::
|
42
|
+
|
43
|
+
In the test case, we create a new `store` to mount `countModel`, use `store.use` to get the State and Actions of `countModel`. Then, we call the `add` Action to update the state and assert the updated state value.
|
44
|
+
|
45
|
+
Execute the `pnpm run test` command to trigger the execution of the test case.
|
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 10
|
3
|
+
title: TS Best Practices
|
4
|
+
---
|
5
|
+
# TS Best Practices
|
6
|
+
|
7
|
+
Reduck provides excellent support for TypeScript, and in most cases, you can get API type prompts directly without any extra work. In this section, we will provide additional information on other usage scenarios.
|
8
|
+
|
9
|
+
## Defining the State Type of the Model
|
10
|
+
|
11
|
+
Declaring type information for the State of a Model is a best practice when using Reduck in TypeScript.
|
12
|
+
|
13
|
+
```ts
|
14
|
+
interface State {
|
15
|
+
data: string;
|
16
|
+
}
|
17
|
+
|
18
|
+
export const foo = model<State>('foo').define({
|
19
|
+
state: {
|
20
|
+
data: '',
|
21
|
+
},
|
22
|
+
computed: {
|
23
|
+
withSuffix: state => state.data + 'suffix',
|
24
|
+
},
|
25
|
+
actions: {
|
26
|
+
setData: (state, payload: string) => {
|
27
|
+
state.data = payload;
|
28
|
+
},
|
29
|
+
},
|
30
|
+
});
|
31
|
+
```
|
32
|
+
|
33
|
+
When you declare type information for the State of a Model, the `computed` and `actions` of the Model can get the correct type information. In fact, even if we don't define State type information in the example code above, the type information of State can be automatically inferred based on the initial value information of `state`. However, we still recommend that you declare the type information of State when defining a Model because the type information of State inferred based on the initial value information of `state` may be incomplete (missing fields or field type information), and the type information of State cannot be automatically inferred based on the initial value information of `state` when using [Function Type](/apis/app/runtime/model/model_#函数类型) to define the Model.
|
34
|
+
|
35
|
+
## Dependent types of Derived State
|
36
|
+
|
37
|
+
When the derived state of a Model depends on other Models, you need to manually specify the State of the other Models.
|
38
|
+
|
39
|
+
|
40
|
+
```ts
|
41
|
+
interface State {
|
42
|
+
data: string;
|
43
|
+
}
|
44
|
+
|
45
|
+
export const bar = model<State>('bar').define({
|
46
|
+
state: {
|
47
|
+
data: '',
|
48
|
+
},
|
49
|
+
computed: {
|
50
|
+
// 为 fooState 指定类型
|
51
|
+
withFoo: [foo, (state, fooState: FooState) => state.data + fooState.data],
|
52
|
+
},
|
53
|
+
});
|
54
|
+
```
|
55
|
+
|
56
|
+
## Hooks for Getting Model Type Information
|
57
|
+
|
58
|
+
Reduck provides a set of utility types for getting Model type information:
|
59
|
+
|
60
|
+
- `GetModelState`: Get the type information of the State (including derived state) of the Model.
|
61
|
+
- `GetModelActions`: Get the type information of the Actions (including Effects functions) of the Model.
|
62
|
+
|
63
|
+
```ts
|
64
|
+
export const foo = model<State2>('foo').define({
|
65
|
+
// 省略
|
66
|
+
});
|
67
|
+
|
68
|
+
// 获取 foo 的 State 类型
|
69
|
+
let fooActions: GetModelActions<typeof foo>;
|
70
|
+
// 获取 foo 的 Actions 类型
|
71
|
+
let fooState: GetModelState<typeof foo>;
|
72
|
+
```
|