@modern-js/main-doc 2.0.0-beta.2 → 2.0.0-beta.3
Sign up to get free protection for your applications and to get access to all the features.
- package/.turbo/turbo-build.log +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/new.md +0 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/bootstrap.md +17 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/create-app.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-store.md +0 -22
- package/en/docusaurus-plugin-content-docs/current/components/reduck-migration.md +1 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/asset-prefix.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/hmr.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/https.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/port.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/progress-bar.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/start-url.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/experiments/lazy-compilation.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/app-icon.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/crossorigin.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/disable-html-folder.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/favicon-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/favicon.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/inject-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/inject.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/meta-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/meta.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/mount-id.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-parameters-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-parameters.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/title-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/title.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/asset-prefix.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/assets-retry.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/charset.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/clean-dist-path.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/convert-to-rem.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/copy.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/css-module-local-ident-name.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/data-uri-limit.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-extract.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-module-extension.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-filename-hash.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-inline-runtime-chunk.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-minimize.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-source-map.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-ts-checker.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/dist-path.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-asset-fallback.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-asset-manifest.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-css-module-tsdeclaration.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-inline-scripts.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-inline-styles.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-latest-decorators.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/externals.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/filename.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/legal-comments.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/override-browserslist.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/polyfill.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/svg-default-export.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/build-cache.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/bundle-analyze.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/chunk-split.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/print-file-size.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/profile.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/remove-console.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/remove-moment-locale.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/plugins.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/security/sri.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/alias.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/compile-js-data-uri.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/define.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/exclude.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/global-vars.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/include.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/module-scopes.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/pre-entry.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/resolve-extension-prefix.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/resolve-main-fields.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/autoprefixer.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/babel.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/css-extract.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/css-loader.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/dev-server.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/html-plugin.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/inspector.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/less.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/minify-css.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/postcss.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/pug.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/sass.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/style-loader.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/styled-components.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/swc.md +42 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/terser.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/ts-checker.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/ts-loader.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/webpack-chain.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/webpack.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/builder.md +46 -0
- package/en/docusaurus-plugin-content-docs/current.json +18 -18
- package/package.json +3 -3
- package/scripts/config.ts +2 -2
- package/zh/apis/app/commands/new.md +0 -2
- package/zh/apis/app/runtime/app/_category_.json +1 -1
- package/zh/apis/app/runtime/bff/_category_.json +1 -1
- package/zh/apis/app/runtime/core/_category_.json +1 -1
- package/zh/apis/app/runtime/core/bootstrap.md +17 -3
- package/zh/apis/app/runtime/model/_category_.json +1 -1
- package/zh/apis/app/runtime/model/create-app.md +1 -1
- package/zh/apis/app/runtime/model/use-store.md +1 -23
- package/zh/apis/app/runtime/router/_category_.json +1 -1
- package/zh/apis/app/runtime/ssr/_category_.json +1 -1
- package/zh/apis/app/runtime/testing/_category_.json +1 -1
- package/zh/apis/app/runtime/utility/_category_.json +1 -1
- package/zh/apis/app/runtime/web-server/_category_.json +1 -1
- package/zh/components/reduck-migration.md +1 -0
- package/zh/configure/app/dev/asset-prefix.md +1 -1
- package/zh/configure/app/dev/hmr.md +1 -1
- package/zh/configure/app/dev/https.md +1 -1
- package/zh/configure/app/dev/port.md +1 -1
- package/zh/configure/app/dev/progress-bar.md +1 -1
- package/zh/configure/app/dev/start-url.md +1 -1
- package/zh/configure/app/experiments/_category_.json +4 -0
- package/zh/configure/app/experiments/lazy-compilation.md +1 -1
- package/zh/configure/app/html/_category_.json +4 -0
- package/zh/configure/app/html/app-icon.md +1 -1
- package/zh/configure/app/html/crossorigin.md +1 -1
- package/zh/configure/app/html/disable-html-folder.md +1 -1
- package/zh/configure/app/html/favicon-by-entries.md +1 -1
- package/zh/configure/app/html/favicon.md +1 -1
- package/zh/configure/app/html/inject-by-entries.md +1 -1
- package/zh/configure/app/html/inject.md +1 -1
- package/zh/configure/app/html/meta-by-entries.md +1 -1
- package/zh/configure/app/html/meta.md +1 -1
- package/zh/configure/app/html/mount-id.md +1 -1
- package/zh/configure/app/html/template-by-entries.md +1 -1
- package/zh/configure/app/html/template-parameters-by-entries.md +1 -1
- package/zh/configure/app/html/template-parameters.md +1 -1
- package/zh/configure/app/html/template.md +1 -1
- package/zh/configure/app/html/title-by-entries.md +1 -1
- package/zh/configure/app/html/title.md +1 -1
- package/zh/configure/app/output/asset-prefix.md +1 -1
- package/zh/configure/app/output/assets-retry.md +1 -1
- package/zh/configure/app/output/charset.md +1 -1
- package/zh/configure/app/output/clean-dist-path.md +1 -1
- package/zh/configure/app/output/convert-to-rem.md +1 -1
- package/zh/configure/app/output/copy.md +1 -1
- package/zh/configure/app/output/css-module-local-ident-name.md +1 -1
- package/zh/configure/app/output/data-uri-limit.md +1 -1
- package/zh/configure/app/output/disable-css-extract.md +1 -1
- package/zh/configure/app/output/disable-css-module-extension.md +1 -1
- package/zh/configure/app/output/disable-filename-hash.md +1 -1
- package/zh/configure/app/output/disable-inline-runtime-chunk.md +1 -1
- package/zh/configure/app/output/disable-minimize.md +1 -1
- package/zh/configure/app/output/disable-source-map.md +1 -1
- package/zh/configure/app/output/disable-ts-checker.md +1 -1
- package/zh/configure/app/output/dist-path.md +1 -1
- package/zh/configure/app/output/enable-asset-fallback.md +1 -1
- package/zh/configure/app/output/enable-asset-manifest.md +1 -1
- package/zh/configure/app/output/enable-css-module-tsdeclaration.md +1 -1
- package/zh/configure/app/output/enable-inline-scripts.md +1 -1
- package/zh/configure/app/output/enable-inline-styles.md +1 -1
- package/zh/configure/app/output/enable-latest-decorators.md +1 -1
- package/zh/configure/app/output/externals.md +1 -1
- package/zh/configure/app/output/filename.md +1 -1
- package/zh/configure/app/output/legal-comments.md +1 -1
- package/zh/configure/app/output/override-browserslist.md +1 -1
- package/zh/configure/app/output/polyfill.md +1 -1
- package/zh/configure/app/output/ssg.md +118 -114
- package/zh/configure/app/output/svg-default-export.md +1 -1
- package/zh/configure/app/performance/_category_.json +4 -0
- package/zh/configure/app/performance/build-cache.md +1 -1
- package/zh/configure/app/performance/bundle-analyze.md +1 -1
- package/zh/configure/app/performance/chunk-split.md +1 -1
- package/zh/configure/app/performance/print-file-size.md +1 -1
- package/zh/configure/app/performance/profile.md +1 -1
- package/zh/configure/app/performance/remove-console.md +1 -1
- package/zh/configure/app/performance/remove-moment-locale.md +1 -1
- package/zh/configure/app/plugins.md +1 -1
- package/zh/configure/app/runtime/state.md +13 -0
- package/zh/configure/app/security/_category_.json +4 -0
- package/zh/configure/app/security/sri.md +1 -1
- package/zh/configure/app/server/ssr.md +0 -2
- package/zh/configure/app/source/alias.md +1 -1
- package/zh/configure/app/source/compile-js-data-uri.md +1 -1
- package/zh/configure/app/source/define.md +1 -1
- package/zh/configure/app/source/exclude.md +1 -1
- package/zh/configure/app/source/global-vars.md +1 -1
- package/zh/configure/app/source/include.md +1 -1
- package/zh/configure/app/source/module-scopes.md +1 -1
- package/zh/configure/app/source/pre-entry.md +1 -1
- package/zh/configure/app/source/resolve-extension-prefix.md +1 -1
- package/zh/configure/app/source/resolve-main-fields.md +1 -1
- package/zh/configure/app/tools/autoprefixer.md +1 -1
- package/zh/configure/app/tools/babel.md +1 -1
- package/zh/configure/app/tools/css-extract.md +1 -1
- package/zh/configure/app/tools/css-loader.md +1 -1
- package/zh/configure/app/tools/dev-server.md +1 -1
- package/zh/configure/app/tools/html-plugin.md +1 -1
- package/zh/configure/app/tools/inspector.md +1 -1
- package/zh/configure/app/tools/less.md +1 -1
- package/zh/configure/app/tools/minify-css.md +1 -1
- package/zh/configure/app/tools/postcss.md +1 -1
- package/zh/configure/app/tools/pug.md +1 -1
- package/zh/configure/app/tools/sass.md +1 -1
- package/zh/configure/app/tools/style-loader.md +1 -1
- package/zh/configure/app/tools/styled-components.md +1 -1
- package/zh/configure/app/tools/swc.md +42 -0
- package/zh/configure/app/tools/terser.md +1 -1
- package/zh/configure/app/tools/ts-checker.md +1 -1
- package/zh/configure/app/tools/ts-loader.md +1 -1
- package/zh/configure/app/tools/webpack-chain.md +1 -1
- package/zh/configure/app/tools/webpack.md +1 -1
- package/zh/guides/advanced-features/custom-app.md +8 -2
- package/zh/guides/advanced-features/ssg.md +74 -63
- package/zh/guides/advanced-features/ssr.md +74 -11
- package/zh/guides/basic-features/builder.md +46 -0
- package/zh/guides/basic-features/css/_category_.json +1 -1
- package/zh/guides/basic-features/css/less-sass.md +1 -14
- package/zh/guides/basic-features/data-fetch.md +1 -1
- package/zh/guides/basic-features/env-vars.md +34 -0
- package/zh/guides/basic-features/routes.md +32 -35
- package/zh/guides/concept/entries.md +4 -4
- package/zh/guides/topic-detail/framework-plugin/extend.md +3 -4
- package/zh/{apis/app/runtime/plugin/hook-api.md → guides/topic-detail/framework-plugin/hook-list.md} +42 -135
- package/zh/{apis/app/runtime/plugin → guides/topic-detail/framework-plugin}/hook.md +2 -3
- package/zh/guides/topic-detail/framework-plugin/implement.md +21 -10
- package/zh/guides/topic-detail/framework-plugin/introduction.md +49 -0
- package/{en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin → zh/guides/topic-detail/framework-plugin}/plugin-api.md +3 -4
- package/zh/guides/topic-detail/framework-plugin/relationship.md +2 -3
- package/zh/guides/topic-detail/model/quick-start.md +4 -0
- package/zh/tutorials/first-app/c01-getting-started/1.2-minimal-mwa.md +2 -2
- package/zh/tutorials/first-app/c01-getting-started/1.4-enable-ssr.md +5 -2
- package/zh/tutorials/first-app/c02-generator-and-studio/2.2-boilerplates.md +4 -6
- package/zh/tutorials/first-app/c02-generator-and-studio/2.3-configuration.md +2 -4
- package/zh/tutorials/first-app/c03-ide/3.1-setting-up.md +1 -1
- package/zh/tutorials/first-app/c03-ide/3.2-hints-in-ide.md +44 -50
- package/zh/tutorials/first-app/c03-ide/3.3-autofix-in-ide.md +1 -1
- package/zh/tutorials/first-app/c03-ide/3.4-autofix-in-cli.md +4 -4
- package/zh/tutorials/first-app/c04-es6-plus-and-ts/4.1-use-es6-plus.md +8 -21
- package/zh/tutorials/first-app/c04-es6-plus-and-ts/4.2-use-typescript.md +37 -13
- package/zh/tutorials/first-app/c05-component/5.1-use-ui-library.md +3 -13
- package/zh/tutorials/first-app/c05-component/5.2-use-standalone-component.md +1 -21
- package/zh/tutorials/first-app/c06-css-and-component/6.1-css-in-js.md +9 -9
- package/zh/tutorials/first-app/c06-css-and-component/6.2-utility-class.md +9 -14
- package/zh/tutorials/first-app/c06-css-and-component/6.3-postcss.md +7 -7
- package/zh/tutorials/first-app/c06-css-and-component/6.4-design-system.md +1 -1
- package/zh/tutorials/first-app/c06-css-and-component/6.5-storybook.md +2 -2
- package/zh/tutorials/first-app/c06-css-and-component/6.6-testing.md +8 -17
- package/zh/tutorials/first-app/c07-app-entry/7.1-intro.md +23 -18
- package/zh/tutorials/first-app/c07-app-entry/7.2-add-entry-in-cli.md +30 -30
- package/zh/tutorials/first-app/c07-app-entry/7.3-manage-entries-by-hand.md +4 -9
- package/zh/tutorials/first-app/c08-client-side-routing/8.1-code-based-routing.md +66 -63
- package/zh/tutorials/first-app/c09-bff/9.2-enable-bff.md +35 -33
- package/zh/tutorials/first-app/c09-bff/9.3-fetch-bff.md +28 -102
- package/zh/tutorials/first-app/c10-model/10.1-application-architecture.md +4 -6
- package/zh/tutorials/first-app/c10-model/10.2-add-model.md +3 -3
- package/zh/tutorials/first-app/c10-model/10.3-use-model.md +21 -20
- package/zh/tutorials/first-app/c10-model/10.4-testing.md +2 -2
- package/zh/tutorials/first-app/c11-container/11.1-use-model-with-app-state.md +34 -68
- package/zh/tutorials/first-app/c11-container/11.2-add-container.md +40 -37
- package/zh/tutorials/first-app/c11-container/11.3-use-loader.md +6 -4
- package/zh/tutorials/first-app/c11-container/11.4-testing.md +2 -2
- package/zh/tutorials/foundations/introduction.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/default-alias.md +0 -25
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/_category_.json +0 -4
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/abstract.md +0 -26
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/hook-api.md +0 -896
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/hook.md +0 -170
- package/zh/apis/app/runtime/default-alias.md +0 -23
- package/zh/apis/app/runtime/plugin/_category_.json +0 -4
- package/zh/apis/app/runtime/plugin/abstract.md +0 -26
- package/zh/apis/app/runtime/plugin/plugin-api.md +0 -117
- package/zh/guides/basic-features/image.md +0 -43
- package/zh/guides/topic-detail/compile-speed.md +0 -182
- package/zh/guides/topic-detail/framework-plugin/abstract.md +0 -27
- package/zh/guides/troubleshooting/compile.md +0 -379
- package/zh/tutorials/first-app/c08-client-side-routing/8.2-file-based-routing.md +0 -310
@@ -4,7 +4,7 @@ sidebar_label: exclude
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.exclude](https://modernjs.dev/builder/zh/api/config-source.html#source-exclude)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/exclude.md'
|
@@ -4,7 +4,7 @@ sidebar_label: globalVars
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.globalVars](https://modernjs.dev/builder/zh/api/config-source.html#source-globalvars)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/globalVars.md'
|
@@ -4,7 +4,7 @@ sidebar_label: include
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.include](https://modernjs.dev/builder/zh/api/config-source.html#source-include)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/include.md'
|
@@ -4,7 +4,7 @@ sidebar_label: moduleScopes
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.moduleScopes](https://modernjs.dev/builder/zh/api/config-source.html#source-modulescopes)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/moduleScopes.md'
|
@@ -4,7 +4,7 @@ sidebar_label: preEntry
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.preEntry](https://modernjs.dev/builder/zh/api/config-source.html#source-preentry)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/preEntry.md'
|
@@ -4,7 +4,7 @@ sidebar_label: resolveExtensionPrefix
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.resolveExtensionPrefix](https://modernjs.dev/builder/zh/api/config-source.html#source-resolveextensionprefix)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/resolveExtensionPrefix.md'
|
@@ -4,7 +4,7 @@ sidebar_label: resolveMainFields
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [source.resolveMainFields](https://modernjs.dev/builder/zh/api/config-source.html#source-resolvemainfields)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/source/resolveMainFields.md'
|
@@ -4,7 +4,7 @@ sidebar_label: autoprefixer
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.autoprefixer](https://modernjs.dev/builder/zh/api/config-tools.html#tools-autoprefixer)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/autoprefixer.md'
|
@@ -4,7 +4,7 @@ sidebar_label: babel
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.babel](https://modernjs.dev/builder/zh/api/config-tools.html#tools-babel)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/babel.md'
|
@@ -4,7 +4,7 @@ sidebar_label: cssExtract
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.cssExtract](https://modernjs.dev/builder/zh/api/config-tools.html#tools-cssextract)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/cssExtract.md'
|
@@ -4,7 +4,7 @@ sidebar_label: cssLoader
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.cssLoader](https://modernjs.dev/builder/zh/api/config-tools.html#tools-cssloader)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/cssLoader.md'
|
@@ -4,7 +4,7 @@ sidebar_label: devServer
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.devServer](https://modernjs.dev/builder/zh/api/config-tools.html#tools-devserver)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/devServer.md'
|
@@ -4,7 +4,7 @@ sidebar_label: htmlPlugin
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.htmlPlugin](https://modernjs.dev/builder/zh/api/config-tools.html#tools-htmlplugin)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/htmlPlugin.md'
|
@@ -4,7 +4,7 @@ sidebar_label: inspector
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.inspector](https://modernjs.dev/builder/zh/api/config-tools.html#tools-inspector)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/inspector.md'
|
@@ -4,7 +4,7 @@ sidebar_label: less
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.less](https://modernjs.dev/builder/zh/api/config-tools.html#tools-less)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/less.md'
|
@@ -4,7 +4,7 @@ sidebar_label: minifyCss
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.minifyCss](https://modernjs.dev/builder/zh/api/config-tools.html#tools-minifycss)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/minifyCss.md'
|
@@ -4,7 +4,7 @@ sidebar_label: postcss
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.postcss](https://modernjs.dev/builder/zh/api/config-tools.html#tools-postcss)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/postcss.md'
|
@@ -4,7 +4,7 @@ sidebar_label: pug
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.pug](https://modernjs.dev/builder/zh/api/config-tools.html#tools-pug)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/pug.md'
|
@@ -4,7 +4,7 @@ sidebar_label: sass
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.sass](https://modernjs.dev/builder/zh/api/config-tools.html#tools-sass)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/sass.md'
|
@@ -4,7 +4,7 @@ sidebar_label: styleLoader
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.styleLoader](https://modernjs.dev/builder/zh/api/config-tools.html#tools-styleloader)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/styleLoader.md'
|
@@ -4,7 +4,7 @@ sidebar_label: styledComponents
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.styledComponents](https://modernjs.dev/builder/zh/api/config-tools.html#tools-styledcomponents)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/styledComponents.md'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
title: tools.swc
|
3
|
+
sidebar_label: swc
|
4
|
+
---
|
5
|
+
|
6
|
+
- 类型: `Object`
|
7
|
+
- 默认值: `undefined`
|
8
|
+
|
9
|
+
## 介绍
|
10
|
+
|
11
|
+
[SWC](https://swc.rs/) (Speedy Web Compiler) 是基于 `Rust` 语言编写的高性能 JavaScript 和 TypeScript 转译和压缩工具。在 Polyfill 和语法降级方面可以和 Babel 提供一致的能力,并且比 Babel 性能高出 10 倍不止。
|
12
|
+
|
13
|
+
Modern.js 提供了开箱即用的 SWC 插件,可以为你的 Web 应用提供语法降级、Polyfill 以及压缩,并且移植了一些额外常见的 Babel 插件。
|
14
|
+
|
15
|
+
## 安装
|
16
|
+
|
17
|
+
使用前需要安装 `@modern-js/plugin-swc` 插件,安装完成后,会自动启用 SWC 编译和压缩能力。
|
18
|
+
|
19
|
+
```bash
|
20
|
+
pnpm add @modern-js/plugin-swc -D
|
21
|
+
```
|
22
|
+
|
23
|
+
## 配置项
|
24
|
+
|
25
|
+
你可以通过 `tools.swc` 配置项来设置 SWC 编译行为。
|
26
|
+
|
27
|
+
```js title="modern.config.ts"
|
28
|
+
import { defineConfig } from '@modern-js/app-tools';
|
29
|
+
|
30
|
+
export default defineConfig({
|
31
|
+
tools: {
|
32
|
+
swc: {
|
33
|
+
jsMinify: {
|
34
|
+
compress: {},
|
35
|
+
mangle: true,
|
36
|
+
},
|
37
|
+
},
|
38
|
+
},
|
39
|
+
});
|
40
|
+
```
|
41
|
+
|
42
|
+
完整配置项请参考 [Modern.js Builder - SWC 插件配置](https://modernjs.dev/builder/zh/plugins/plugin-swc.html#%E9%85%8D%E7%BD%AE)。
|
@@ -4,7 +4,7 @@ sidebar_label: terser
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.terser](https://modernjs.dev/builder/zh/api/config-tools.html#tools-terser)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/terser.md'
|
@@ -4,7 +4,7 @@ sidebar_label: tsChecker
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.tsChecker](https://modernjs.dev/builder/zh/api/config-tools.html#tools-tschecker)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/tsChecker.md'
|
@@ -4,7 +4,7 @@ sidebar_label: tsLoader
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.tsLoader](https://modernjs.dev/builder/zh/api/config-tools.html#tools-tsloader)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/tsLoader.md'
|
@@ -4,7 +4,7 @@ sidebar_label: webpackChain
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.webpackChain](https://modernjs.dev/builder/zh/api/config-tools.html#tools-webpackchain)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/webpackChain.md'
|
@@ -4,7 +4,7 @@ sidebar_label: webpack
|
|
4
4
|
---
|
5
5
|
|
6
6
|
:::info BUILDER
|
7
|
-
该配置为 Modern.js Builder
|
7
|
+
该配置为 Modern.js Builder 配置,详细信息可参考 [tools.webpack](https://modernjs.dev/builder/zh/api/config-tools.html#tools-webpack)。
|
8
8
|
:::
|
9
9
|
|
10
10
|
import Main from '@modern-js/builder-doc/zh/config/tools/webpack.md'
|
@@ -9,17 +9,23 @@ sidebar_position: 7
|
|
9
9
|
|
10
10
|
## 添加自定义行为
|
11
11
|
|
12
|
-
当 `index` 文件默认导出**函数**是,Modern.js 还是会根据 `runtime
|
12
|
+
当 `index` 文件默认导出**函数**是,Modern.js 还是会根据 `runtime` 的设置情况生成 `createApp` 包裹后的代码。在渲染过程中,将 `createApp` 包裹后的组件作为参数传递给 `index` 文件导出的函数,这样开发者可以自定义将组件挂载到 DOM 节点上,或在挂载前添加自定义行为。例如:
|
13
13
|
|
14
14
|
```js title=src/index.jsx
|
15
|
+
import ReactDOM from 'react-dom/client'
|
15
16
|
import { bootstrap } from '@modern-js/runtime';
|
16
17
|
|
18
|
+
|
17
19
|
export default App => {
|
18
20
|
// do something before bootstrap...
|
19
|
-
bootstrap(App, 'root');
|
21
|
+
bootstrap(App, 'root', undefined, ReactDOM);
|
20
22
|
};
|
21
23
|
```
|
22
24
|
|
25
|
+
:::warning
|
26
|
+
由于 bootstrap 函数需要兼容 React17 和 React18 的用法,调用 bootstrap 函数时需要手动传入 ReactDOM 参数。
|
27
|
+
:::
|
28
|
+
|
23
29
|
Modern.js 生成的文件内容如下:
|
24
30
|
|
25
31
|
```js
|
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
title:
|
2
|
+
title: 静态站点生成(SSG)
|
3
3
|
sidebar_position: 4
|
4
4
|
---
|
5
5
|
|
@@ -9,11 +9,11 @@ SSG(Static Site Generation)是一种基于数据与模板,在构建时渲
|
|
9
9
|
SSG 是构建阶段的解决方案,因此仅对生产环境有效。通过 `dev` 命令运行时,表现效果与 SSR 相同。
|
10
10
|
:::
|
11
11
|
|
12
|
-
|
12
|
+
我们首先需要执行 `pnpm run new` 启用 SSG 功能:
|
13
13
|
|
14
14
|
```bash
|
15
|
-
?
|
16
|
-
?
|
15
|
+
? 请选择你想要的操作: 启用可选功能
|
16
|
+
? 启用可选功能: 启用「SSG」功能
|
17
17
|
```
|
18
18
|
|
19
19
|
SSG 在**约定式路由**和**自控式路由**下的使用方式不同。
|
@@ -25,22 +25,37 @@ SSG 在**约定式路由**和**自控式路由**下的使用方式不同。
|
|
25
25
|
例如,以下是一个使用约定式路由的项目目录结构:
|
26
26
|
|
27
27
|
```
|
28
|
-
|
29
|
-
|
30
|
-
│
|
31
|
-
│
|
32
|
-
│
|
28
|
+
.
|
29
|
+
├── src
|
30
|
+
│ └── routes
|
31
|
+
│ ├── layout.tsx
|
32
|
+
│ ├── page.tsx
|
33
|
+
│ └── user
|
34
|
+
│ ├── layout.tsx
|
35
|
+
│ ├── page.tsx
|
36
|
+
│ └── profile
|
37
|
+
│ └── page.tsx
|
33
38
|
```
|
34
39
|
|
35
|
-
|
40
|
+
上述文件目录将会生成以下三条路由:
|
41
|
+
|
42
|
+
- `/`
|
43
|
+
- `/user`
|
44
|
+
- `/user/profile`
|
45
|
+
|
46
|
+
:::note
|
47
|
+
如果还不了解约定式路由的规则,可以先查看[路由](/docs/guides/basic-features/routes)。
|
48
|
+
:::
|
49
|
+
|
50
|
+
在 `src/routes/page.tsx` 中添加组件代码:
|
36
51
|
|
37
52
|
```jsx title="src/pages/index.tsx"
|
38
53
|
export default () => {
|
39
|
-
return <div>
|
54
|
+
return <div>Index Page</div>
|
40
55
|
}
|
41
56
|
```
|
42
57
|
|
43
|
-
SSG
|
58
|
+
SSG 也是在 Node.js 环境渲染页面,因此我们可以在**开发阶段开启 SSR**,提前在暴露代码问题,验证 SSG 渲染效果:
|
44
59
|
|
45
60
|
```typescript title="modern.config.ts"
|
46
61
|
export default defineConfig({
|
@@ -50,13 +65,11 @@ export default defineConfig({
|
|
50
65
|
}
|
51
66
|
```
|
52
67
|
|
53
|
-
在项目根路径下执行 `pnpm run dev` 命令,查看 `dist/` 目录,此时只生成一个 HTML
|
54
|
-
|
55
|
-

|
68
|
+
在项目根路径下执行 `pnpm run dev` 命令,查看 `dist/` 目录,此时只生成一个 HTML 文件 `main/index.html`。
|
56
69
|
|
57
|
-
在项目根路径下执行 `pnpm run build` 命令,构建完成后,查看 `dist/` 目录,此时生成 `main/index.html`、`main/
|
70
|
+
在项目根路径下执行 `pnpm run build` 命令,构建完成后,查看 `dist/` 目录,此时生成 `main/index.html`、`main/user/index.html` 和 `main/user/profile/index.html` 三个 HTML 文件,内容分别对应上述三条路由。
|
58
71
|
|
59
|
-
|
72
|
+
**约定式路由**中的每一条路由,都会生成一个单独的 HTML 文件。查看 `main/index.html`,可以发现包含 `Index Page` 的文本内容,这正是 SSG 的效果。
|
60
73
|
|
61
74
|
执行 `pnpm run start` 启动项目后,访问页面,在浏览器我们工具的 Network 窗口,查看请求返回的文档,文档包含组件渲染后的完整页面内容。
|
62
75
|
|
@@ -64,45 +77,46 @@ export default defineConfig({
|
|
64
77
|
|
65
78
|
**自控式路由**是通过组件代码自定义路由,需要应用运行起来才能获取准确的路由信息。因此,无法开箱即用的使用 SSG 功能。此时需要用户提前告知 Modern.js 框架,哪些路由需要开启 SSG 功能。
|
66
79
|
|
67
|
-
|
68
|
-
|
69
|
-
```
|
70
|
-
import {
|
71
|
-
|
72
|
-
|
73
|
-
<Switch>
|
74
|
-
<Route path="/" exact={true}>
|
75
|
-
<div>Home</div>
|
76
|
-
</Route>
|
77
|
-
<Route path="/foo" exact={true}>
|
78
|
-
<div>Foo</div>
|
79
|
-
</Route>
|
80
|
-
</Switch>
|
81
|
-
);
|
82
|
-
```
|
80
|
+
例如有以下代码,包含多条路由,设置 `output.ssg` 为 `true` 时,默认只会渲染入口路由即 `/`:
|
81
|
+
|
82
|
+
```tsx title="src/App.tsx"
|
83
|
+
import { useRuntimeContext } from '@modern-js/runtime';
|
84
|
+
import { Routes, Route, BrowserRouter } from '@modern-js/runtime/router';
|
85
|
+
import { StaticRouter } from '@modern-js/runtime/router/server';
|
83
86
|
|
84
|
-
|
87
|
+
const Router = typeof window === 'undefined' ? StaticRouter : BrowserRouter;
|
88
|
+
|
89
|
+
export default () => {
|
90
|
+
const { context } = useRuntimeContext();
|
91
|
+
return (
|
92
|
+
<Router location={context.request.pathname}>
|
93
|
+
<Routes>
|
94
|
+
<Route index element={<div>index</div>} />
|
95
|
+
<Route path="about" element={<div>about</div>} />
|
96
|
+
</Routes>
|
97
|
+
</Router>
|
98
|
+
);
|
99
|
+
};
|
100
|
+
```
|
85
101
|
|
86
|
-
|
102
|
+
如果我们希望同时开启 `/about` 的 SSG 功能,可以配置 `output.ssg`,告知 Modern.js 开启指定路由的 SSG 功能。
|
87
103
|
|
88
104
|
```typescript title="modern.config.ts"
|
89
105
|
export default defineConfig({
|
90
106
|
output: {
|
91
107
|
ssg: {
|
92
|
-
routes: ['/', '/
|
108
|
+
routes: ['/', '/about'],
|
93
109
|
},
|
94
110
|
},
|
95
111
|
})
|
96
112
|
```
|
97
113
|
|
98
|
-
执行 `pnpm run build` 与 `pnpm run start` 后,访问 `http://localhost:8080/
|
99
|
-
|
100
|
-
查看构建产物文件,可以看到 `dist/` 目录中,在默认的 `main` 入口产物目录下,新增一个 `foo.html` 文件:
|
114
|
+
执行 `pnpm run build` 与 `pnpm run start` 后,访问 `http://localhost:8080/about`,在 Preview 视图中可以看到页面已经完成渲染。
|
101
115
|
|
102
|
-
|
116
|
+
查看构建产物文件,可以看到 `dist/` 目录中,新增了一个 `main/about/index.html` 文件。
|
103
117
|
|
104
118
|
:::info
|
105
|
-
|
119
|
+
以上仅介绍了单入口的情况,更多相关内容可以查看 [API 文档](/docs/configure/app/output/ssg)。
|
106
120
|
:::
|
107
121
|
|
108
122
|
### 获取数据
|
@@ -116,36 +130,33 @@ export default defineConfig({
|
|
116
130
|
- 在开发阶段,不管 `useLoader` 是否配置 `{ static: true }`,函数都会在 SSR 时获取数据。
|
117
131
|
:::
|
118
132
|
|
119
|
-
修改上述 `App.ts` 的代码为:
|
133
|
+
修改上述 `src/App.ts` 的代码为:
|
120
134
|
|
121
|
-
```
|
122
|
-
import {
|
123
|
-
import {
|
135
|
+
```tsx title="App.ts"
|
136
|
+
import { useRuntimeContext, useStaticLoader } from '@modern-js/runtime';
|
137
|
+
import { Routes, Route, BrowserRouter } from '@modern-js/runtime/router';
|
138
|
+
import { StaticRouter } from '@modern-js/runtime/router/server';
|
139
|
+
|
140
|
+
const Router = typeof window === 'undefined' ? StaticRouter : BrowserRouter;
|
124
141
|
|
125
142
|
export default () => {
|
126
|
-
const {
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
static: true,
|
132
|
-
params: 'foo',
|
133
|
-
},
|
134
|
-
);
|
143
|
+
const { context } = useRuntimeContext();
|
144
|
+
|
145
|
+
const { data } = useStaticLoader(async () => ({
|
146
|
+
message: Math.random(),
|
147
|
+
}));
|
135
148
|
|
136
149
|
return (
|
137
|
-
<
|
138
|
-
<
|
139
|
-
<div>
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
</Route>
|
144
|
-
</Switch>
|
150
|
+
<Router location={context.request.pathname}>
|
151
|
+
<Routes>
|
152
|
+
<Route index element={<div>index</div>} />
|
153
|
+
<Route path="about" element={<div>about, {data?.message}</div>} />
|
154
|
+
</Routes>
|
155
|
+
</Router>
|
145
156
|
);
|
146
157
|
};
|
147
158
|
```
|
148
159
|
|
149
160
|
执行 `pnpm run dev`,重复刷新页面,可以看到 `/foo` 页面的渲染结果不断发生变化,说明数据是在请求时获取的。
|
150
161
|
|
151
|
-
重新执行 `pnpm run build` 后,执行 `pnpm run start
|
162
|
+
重新执行 `pnpm run build` 后,执行 `pnpm run start`,重复刷新页面,发现页面渲染结果始终保持同样的内容,数据在请求时不会再次获取,说明页面在编译时已经完成渲染。
|