@modern-js/main-doc 2.4.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/LICENSE +0 -123
  3. package/README.md +26 -0
  4. package/en/apis/app/commands.mdx +297 -0
  5. package/en/apis/app/hooks/_category_.json +2 -5
  6. package/en/apis/app/hooks/api/framework/lambda.mdx +1 -1
  7. package/en/apis/app/hooks/api/functions/api.mdx +1 -1
  8. package/en/apis/app/hooks/server/index_.mdx +2 -1
  9. package/en/apis/app/hooks/src/pages.mdx +7 -7
  10. package/en/apis/app/hooks/src/routes.mdx +3 -3
  11. package/en/apis/app/runtime/_category_.json +1 -5
  12. package/en/apis/app/runtime/app/define-config.mdx +2 -2
  13. package/en/apis/app/runtime/core/bootstrap.mdx +1 -1
  14. package/en/apis/app/runtime/core/create-app.mdx +2 -2
  15. package/en/apis/app/runtime/core/use-loader.mdx +4 -4
  16. package/en/apis/app/runtime/core/use-module-apps.mdx +2 -2
  17. package/en/apis/app/runtime/model/Provider.mdx +2 -2
  18. package/en/apis/app/runtime/model/auto-actions.mdx +2 -2
  19. package/en/apis/app/runtime/model/connect.mdx +5 -5
  20. package/en/apis/app/runtime/model/create-app.mdx +9 -9
  21. package/en/apis/app/runtime/model/create-store.mdx +3 -3
  22. package/en/apis/app/runtime/model/handle-effect.mdx +2 -2
  23. package/en/apis/app/runtime/model/model_.mdx +1 -1
  24. package/en/apis/app/runtime/model/use-local-model.mdx +1 -1
  25. package/en/apis/app/runtime/model/use-model.mdx +1 -1
  26. package/en/apis/app/runtime/model/use-static-model.mdx +4 -4
  27. package/en/apis/app/runtime/model/use-store.mdx +1 -1
  28. package/en/apis/app/runtime/router/router.mdx +1 -1
  29. package/en/apis/app/runtime/ssr/pre-render.mdx +1 -1
  30. package/en/apis/app/runtime/testing/render.mdx +1 -1
  31. package/en/apis/app/runtime/testing/renderApp.mdx +1 -1
  32. package/en/apis/app/runtime/utility/css-in-js.mdx +1 -1
  33. package/en/apis/app/runtime/utility/loadable.mdx +1 -1
  34. package/en/apis/app/runtime/web-server/hook.mdx +5 -5
  35. package/en/apis/app/runtime/web-server/middleware.mdx +6 -6
  36. package/en/components/global-proxy-config.mdx +3 -3
  37. package/en/components/init-app.mdx +5 -5
  38. package/en/configure/app/bff/_category_.json +4 -0
  39. package/en/configure/app/bff/prefix.mdx +2 -3
  40. package/en/configure/app/bff/proxy.mdx +1 -1
  41. package/en/configure/app/builder-plugins.mdx +3 -3
  42. package/en/configure/app/deploy/_category_.json +4 -0
  43. package/en/configure/app/dev/_category_.json +4 -0
  44. package/en/configure/app/dev/asset-prefix.mdx +1 -1
  45. package/en/configure/app/dev/before-start-url.mdx +13 -0
  46. package/en/configure/app/dev/hmr.mdx +1 -1
  47. package/en/configure/app/dev/host.mdx +13 -0
  48. package/en/configure/app/dev/https.mdx +1 -1
  49. package/en/configure/app/dev/port.mdx +1 -1
  50. package/en/configure/app/dev/progress-bar.mdx +1 -1
  51. package/en/configure/app/dev/start-url.mdx +1 -1
  52. package/en/configure/app/experiments/_category_.json +4 -0
  53. package/en/configure/app/experiments/lazy-compilation.mdx +1 -1
  54. package/en/configure/app/html/_category_.json +4 -0
  55. package/en/configure/app/html/app-icon.mdx +1 -1
  56. package/en/configure/app/html/crossorigin.mdx +1 -1
  57. package/en/configure/app/html/disable-html-folder.mdx +1 -1
  58. package/en/configure/app/html/favicon-by-entries.mdx +1 -1
  59. package/en/configure/app/html/favicon.mdx +1 -1
  60. package/en/configure/app/html/inject-by-entries.mdx +1 -1
  61. package/en/configure/app/html/inject.mdx +1 -1
  62. package/en/configure/app/html/meta-by-entries.mdx +1 -1
  63. package/en/configure/app/html/meta.mdx +1 -1
  64. package/en/configure/app/html/mount-id.mdx +1 -1
  65. package/en/configure/app/html/tags-by-entries.mdx +1 -1
  66. package/en/configure/app/html/tags.mdx +1 -1
  67. package/en/configure/app/html/template-by-entries.mdx +1 -1
  68. package/en/configure/app/html/template-parameters-by-entries.mdx +1 -1
  69. package/en/configure/app/html/template-parameters.mdx +1 -1
  70. package/en/configure/app/html/template.mdx +1 -1
  71. package/en/configure/app/html/title-by-entries.mdx +1 -1
  72. package/en/configure/app/html/title.mdx +1 -1
  73. package/en/configure/app/output/_category_.json +4 -0
  74. package/en/configure/app/output/asset-prefix.mdx +1 -1
  75. package/en/configure/app/output/assets-retry.mdx +1 -1
  76. package/en/configure/app/output/charset.mdx +1 -1
  77. package/en/configure/app/output/clean-dist-path.mdx +1 -1
  78. package/en/configure/app/output/convert-to-rem.mdx +1 -1
  79. package/en/configure/app/output/copy.mdx +1 -1
  80. package/en/configure/app/output/css-module-local-ident-name.mdx +1 -1
  81. package/en/configure/app/output/data-uri-limit.mdx +1 -1
  82. package/en/configure/app/output/disable-css-extract.mdx +1 -1
  83. package/en/configure/app/output/disable-css-module-extension.mdx +1 -1
  84. package/en/configure/app/output/disable-filename-hash.mdx +1 -1
  85. package/en/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
  86. package/en/configure/app/output/disable-minimize.mdx +1 -1
  87. package/en/configure/app/output/disable-source-map.mdx +1 -1
  88. package/en/configure/app/output/disable-ts-checker.mdx +1 -1
  89. package/en/configure/app/output/dist-path.mdx +1 -1
  90. package/en/configure/app/output/enable-asset-fallback.mdx +1 -1
  91. package/en/configure/app/output/enable-asset-manifest.mdx +1 -1
  92. package/en/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
  93. package/en/configure/app/output/enable-inline-scripts.mdx +1 -1
  94. package/en/configure/app/output/enable-inline-styles.mdx +1 -1
  95. package/en/configure/app/output/enable-latest-decorators.mdx +1 -1
  96. package/en/configure/app/output/externals.mdx +1 -1
  97. package/en/configure/app/output/filename.mdx +1 -1
  98. package/en/configure/app/output/legal-comments.mdx +1 -1
  99. package/en/configure/app/output/override-browserslist.mdx +1 -1
  100. package/en/configure/app/output/polyfill.mdx +1 -1
  101. package/en/configure/app/output/ssg.mdx +5 -5
  102. package/en/configure/app/output/svg-default-export.mdx +1 -1
  103. package/en/configure/app/performance/_category_.json +4 -0
  104. package/en/configure/app/performance/build-cache.mdx +1 -1
  105. package/en/configure/app/performance/bundle-analyze.mdx +1 -1
  106. package/en/configure/app/performance/chunk-split.mdx +1 -1
  107. package/en/configure/app/performance/print-file-size.mdx +1 -1
  108. package/en/configure/app/performance/profile.mdx +1 -1
  109. package/en/configure/app/performance/remove-console.mdx +1 -1
  110. package/en/configure/app/performance/remove-moment-locale.mdx +1 -1
  111. package/en/configure/app/plugins.mdx +1 -1
  112. package/en/configure/app/runtime/_category_.json +4 -0
  113. package/en/configure/app/runtime/intro.mdx +2 -2
  114. package/en/configure/app/runtime/master-app.mdx +1 -1
  115. package/en/configure/app/security/_category_.json +4 -0
  116. package/en/configure/app/security/check-syntax.mdx +1 -1
  117. package/en/configure/app/security/sri.mdx +1 -1
  118. package/en/configure/app/server/_category_.json +4 -0
  119. package/en/configure/app/server/base-url.mdx +3 -3
  120. package/en/configure/app/server/enable-framework-ext.mdx +1 -1
  121. package/en/configure/app/server/ssr-by-entries.mdx +1 -1
  122. package/en/configure/app/source/_category_.json +4 -0
  123. package/en/configure/app/source/alias.mdx +1 -1
  124. package/en/configure/app/source/compile-js-data-uri.mdx +1 -1
  125. package/en/configure/app/source/define.mdx +1 -1
  126. package/en/configure/app/source/design-system.mdx +5 -5
  127. package/en/configure/app/source/entries-dir.mdx +1 -1
  128. package/en/configure/app/source/entries.mdx +3 -3
  129. package/en/configure/app/source/exclude.mdx +1 -1
  130. package/en/configure/app/source/global-vars.mdx +1 -1
  131. package/en/configure/app/source/include.mdx +1 -1
  132. package/en/configure/app/source/module-scopes.mdx +1 -1
  133. package/en/configure/app/source/pre-entry.mdx +1 -1
  134. package/en/configure/app/source/resolve-extension-prefix.mdx +1 -1
  135. package/en/configure/app/source/resolve-main-fields.mdx +1 -1
  136. package/en/configure/app/testing/_category_.json +4 -0
  137. package/en/configure/app/testing/transformer.mdx +1 -1
  138. package/en/configure/app/tools/_category_.json +4 -0
  139. package/en/configure/app/tools/autoprefixer.mdx +1 -1
  140. package/en/configure/app/tools/babel.mdx +1 -1
  141. package/en/configure/app/tools/css-extract.mdx +1 -1
  142. package/en/configure/app/tools/css-loader.mdx +1 -1
  143. package/en/configure/app/tools/dev-server.mdx +1 -1
  144. package/en/configure/app/tools/html-plugin.mdx +1 -1
  145. package/en/configure/app/tools/inspector.mdx +1 -1
  146. package/en/configure/app/tools/jest.mdx +1 -1
  147. package/en/configure/app/tools/less.mdx +1 -1
  148. package/en/configure/app/tools/minify-css.mdx +1 -1
  149. package/en/configure/app/tools/postcss.mdx +1 -1
  150. package/en/configure/app/tools/pug.mdx +1 -1
  151. package/en/configure/app/tools/rspack.mdx +13 -0
  152. package/en/configure/app/tools/sass.mdx +1 -1
  153. package/en/configure/app/tools/style-loader.mdx +1 -1
  154. package/en/configure/app/tools/styled-components.mdx +1 -1
  155. package/en/configure/app/tools/tailwindcss.mdx +1 -1
  156. package/en/configure/app/tools/terser.mdx +1 -1
  157. package/en/configure/app/tools/ts-checker.mdx +1 -1
  158. package/en/configure/app/tools/ts-loader.mdx +1 -1
  159. package/en/configure/app/tools/webpack-chain.mdx +1 -1
  160. package/en/configure/app/tools/webpack.mdx +1 -1
  161. package/en/configure/app/usage.mdx +1 -1
  162. package/en/guides/advanced-features/_category_.json +2 -2
  163. package/en/guides/advanced-features/bff/bff-proxy.mdx +1 -1
  164. package/en/guides/advanced-features/bff/frameworks.mdx +1 -1
  165. package/en/guides/advanced-features/bff/function.mdx +3 -3
  166. package/en/guides/advanced-features/code-split.mdx +2 -2
  167. package/en/guides/advanced-features/compatibility.mdx +2 -3
  168. package/en/guides/advanced-features/eslint.mdx +4 -4
  169. package/en/guides/advanced-features/low-level.mdx +1 -1
  170. package/en/guides/advanced-features/rspack-start.mdx +69 -0
  171. package/en/guides/advanced-features/ssg.mdx +12 -13
  172. package/en/guides/advanced-features/ssr.mdx +3 -3
  173. package/en/guides/advanced-features/testing.mdx +4 -5
  174. package/en/guides/advanced-features/web-server.mdx +0 -1
  175. package/en/guides/basic-features/alias.mdx +5 -5
  176. package/en/guides/basic-features/data-fetch.mdx +25 -12
  177. package/en/guides/basic-features/env-vars.mdx +1 -1
  178. package/en/guides/basic-features/html.mdx +11 -11
  179. package/en/guides/basic-features/mock.mdx +21 -1
  180. package/en/guides/basic-features/proxy.mdx +2 -2
  181. package/en/guides/basic-features/routes.mdx +29 -15
  182. package/en/guides/{basic-features → concept}/builder.mdx +2 -2
  183. package/en/guides/concept/entries.mdx +11 -11
  184. package/en/guides/css/_category_.json +5 -0
  185. package/en/guides/{basic-features/css → css}/less-sass.mdx +1 -1
  186. package/en/guides/get-started/introduction.mdx +34 -0
  187. package/en/guides/get-started/quick-start.mdx +4 -4
  188. package/en/guides/get-started/upgrade.mdx +2 -1
  189. package/en/guides/topic-detail/_category_.json +2 -2
  190. package/en/guides/topic-detail/framework-plugin/hook.mdx +1 -1
  191. package/en/guides/topic-detail/generator/plugin/api/hook/onForged.mdx +1 -1
  192. package/en/guides/topic-detail/generator/plugin/develop.mdx +1 -1
  193. package/en/guides/topic-detail/micro-frontend/c02-development.mdx +128 -61
  194. package/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +73 -42
  195. package/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +1 -1
  196. package/en/guides/topic-detail/model/auto-actions.mdx +1 -1
  197. package/en/guides/topic-detail/model/define-model.mdx +1 -1
  198. package/en/guides/topic-detail/model/manage-effects.mdx +1 -1
  199. package/en/guides/topic-detail/model/model-communicate.mdx +1 -1
  200. package/en/guides/topic-detail/model/quick-start.mdx +2 -2
  201. package/en/guides/topic-detail/model/test-model.mdx +1 -1
  202. package/en/guides/topic-detail/model/use-model.mdx +3 -3
  203. package/en/guides/troubleshooting/_category_.json +2 -2
  204. package/en/guides/troubleshooting/cli.mdx +1 -1
  205. package/en/index.md +1 -1
  206. package/en/tutorials/first-app/_category_.json +1 -1
  207. package/en/tutorials/first-app/c01-start.mdx +0 -1
  208. package/en/tutorials/first-app/c03-css.mdx +1 -2
  209. package/en/tutorials/first-app/c06-model.mdx +1 -1
  210. package/en/tutorials/first-app/c07-container.mdx +18 -18
  211. package/en/tutorials/first-app/c08-entries.mdx +24 -25
  212. package/en/tutorials/foundations/introduction.mdx +17 -34
  213. package/package.json +3 -3
  214. package/scripts/config.ts +3 -1
  215. package/scripts/summary.en.json +1 -1
  216. package/scripts/summary.zh.json +1 -1
  217. package/zh/apis/app/commands.mdx +299 -0
  218. package/zh/apis/app/hooks/_category_.json +2 -5
  219. package/zh/apis/app/hooks/src/pages.mdx +1 -1
  220. package/zh/apis/app/hooks/src/routes.mdx +3 -3
  221. package/zh/apis/app/runtime/_category_.json +1 -5
  222. package/zh/apis/app/runtime/core/create-app.mdx +1 -1
  223. package/zh/apis/app/runtime/core/use-module-apps.mdx +81 -40
  224. package/zh/apis/app/runtime/model/Provider.mdx +2 -2
  225. package/zh/apis/app/runtime/model/create-app.mdx +7 -7
  226. package/zh/apis/app/runtime/model/create-store.mdx +2 -2
  227. package/zh/apis/app/runtime/model/use-local-model.mdx +1 -1
  228. package/zh/apis/app/runtime/model/use-static-model.mdx +1 -1
  229. package/zh/apis/app/runtime/model/use-store.mdx +1 -1
  230. package/zh/apis/app/runtime/testing/renderApp.mdx +1 -1
  231. package/zh/components/init-app.mdx +5 -5
  232. package/zh/components/micro-runtime-config.mdx +6 -6
  233. package/zh/components/release-note.mdx +1 -1
  234. package/zh/configure/app/bff/prefix.mdx +1 -1
  235. package/zh/configure/app/bff/proxy.mdx +1 -1
  236. package/zh/configure/app/builder-plugins.mdx +3 -3
  237. package/zh/configure/app/dev/before-start-url.mdx +13 -0
  238. package/zh/configure/app/dev/host.mdx +13 -0
  239. package/zh/configure/app/output/ssg.mdx +3 -3
  240. package/zh/configure/app/plugins.mdx +1 -1
  241. package/zh/configure/app/server/ssr-by-entries.mdx +1 -1
  242. package/zh/configure/app/source/entries-dir.mdx +1 -1
  243. package/zh/configure/app/tools/rspack.mdx +13 -0
  244. package/zh/configure/app/usage.mdx +1 -1
  245. package/zh/guides/advanced-features/_category_.json +2 -6
  246. package/zh/guides/advanced-features/compatibility.mdx +0 -1
  247. package/zh/guides/advanced-features/rspack-start.mdx +69 -0
  248. package/zh/guides/advanced-features/ssg.mdx +8 -9
  249. package/zh/guides/advanced-features/ssr.mdx +3 -2
  250. package/zh/guides/advanced-features/testing.mdx +0 -1
  251. package/zh/guides/advanced-features/web-server.mdx +0 -1
  252. package/zh/guides/basic-features/_category_.json +1 -5
  253. package/zh/guides/basic-features/alias.mdx +5 -5
  254. package/zh/guides/basic-features/data-fetch.mdx +39 -30
  255. package/zh/guides/basic-features/html.mdx +10 -9
  256. package/zh/guides/basic-features/mock.mdx +20 -0
  257. package/zh/guides/basic-features/routes.mdx +38 -17
  258. package/zh/guides/{basic-features → concept}/builder.mdx +4 -4
  259. package/zh/guides/concept/entries.mdx +11 -11
  260. package/zh/guides/css/_category_.json +5 -0
  261. package/zh/guides/{basic-features/css → css}/less-sass.mdx +1 -1
  262. package/zh/guides/{basic-features/css → css}/postcss.mdx +5 -4
  263. package/zh/guides/{basic-features/css → css}/tailwindcss.mdx +0 -1
  264. package/zh/guides/get-started/introduction.mdx +31 -0
  265. package/zh/guides/get-started/quick-start.mdx +4 -5
  266. package/zh/guides/get-started/upgrade.mdx +2 -1
  267. package/zh/guides/topic-detail/_category_.json +2 -2
  268. package/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +1 -1
  269. package/zh/guides/topic-detail/micro-frontend/c02-development.mdx +25 -0
  270. package/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +16 -16
  271. package/zh/guides/topic-detail/model/model-communicate.mdx +1 -1
  272. package/zh/guides/troubleshooting/_category_.json +2 -2
  273. package/zh/index.md +1 -1
  274. package/zh/tutorials/first-app/_category_.json +1 -1
  275. package/zh/tutorials/first-app/c01-start.mdx +1 -2
  276. package/zh/tutorials/first-app/c03-css.mdx +1 -2
  277. package/zh/tutorials/first-app/c06-model.mdx +2 -2
  278. package/zh/tutorials/first-app/c07-container.mdx +18 -18
  279. package/zh/tutorials/first-app/c08-entries.mdx +25 -26
  280. package/zh/tutorials/foundations/introduction.mdx +14 -29
  281. package/en/apis/app/commands/_category_.json +0 -8
  282. package/en/apis/app/commands/build.mdx +0 -39
  283. package/en/apis/app/commands/dev.mdx +0 -61
  284. package/en/apis/app/commands/index.mdx +0 -7
  285. package/en/apis/app/commands/inspect.mdx +0 -61
  286. package/en/apis/app/commands/lint.mdx +0 -19
  287. package/en/apis/app/commands/new.mdx +0 -54
  288. package/en/apis/app/commands/serve.mdx +0 -27
  289. package/en/apis/app/commands/test.mdx +0 -35
  290. package/en/apis/app/commands/upgrade.mdx +0 -18
  291. package/en/apis/app/hooks/index.mdx +0 -7
  292. package/en/apis/app/runtime/index.mdx +0 -7
  293. package/en/guides/advanced-features/index.mdx +0 -7
  294. package/en/guides/basic-features/css/_category_.json +0 -4
  295. package/zh/apis/app/commands/_category_.json +0 -8
  296. package/zh/apis/app/commands/build.mdx +0 -39
  297. package/zh/apis/app/commands/dev.mdx +0 -61
  298. package/zh/apis/app/commands/index.mdx +0 -7
  299. package/zh/apis/app/commands/inspect.mdx +0 -61
  300. package/zh/apis/app/commands/lint.mdx +0 -19
  301. package/zh/apis/app/commands/new.mdx +0 -54
  302. package/zh/apis/app/commands/serve.mdx +0 -27
  303. package/zh/apis/app/commands/test.mdx +0 -35
  304. package/zh/apis/app/commands/upgrade.mdx +0 -18
  305. package/zh/apis/app/hooks/index.mdx +0 -7
  306. package/zh/apis/app/runtime/index.mdx +0 -7
  307. package/zh/guides/advanced-features/index.mdx +0 -7
  308. package/zh/guides/basic-features/css/_category_.json +0 -4
  309. package/zh/guides/basic-features/index.mdx +0 -7
  310. /package/en/guides/{basic-features/css → css}/css-in-js.mdx +0 -0
  311. /package/en/guides/{basic-features/css → css}/css-modules.mdx +0 -0
  312. /package/en/guides/{basic-features/css → css}/postcss.mdx +0 -0
  313. /package/en/guides/{basic-features/css → css}/tailwindcss.mdx +0 -0
  314. /package/zh/guides/{basic-features/css → css}/css-in-js.mdx +0 -0
  315. /package/zh/guides/{basic-features/css → css}/css-modules.mdx +0 -0
@@ -25,20 +25,31 @@ import EnableMicroFrontend from "@site-docs/components/enable-micro-frontend";
25
25
 
26
26
  <EnableMicroFrontend />
27
27
 
28
+ 这里演示主应用为自控式路由的场景,全部场景参考 [体验微前端](/guides/topic-detail/micro-frontend/c02-development.html)
28
29
  ```tsx title=App.tsx
29
30
  function App() {
30
- const { Home, Contact } = useModuleApps();
31
+ const { apps, MApp, Table, Dashboard } = useModuleApps();
32
+
33
+ // 使用的不是 MApp 组件,需要使用 createBrowserRouter 来创建路由
34
+ const router = createBrowserRouter(
35
+ createRoutesFromElements(
36
+ <Route path="/" element={<AppLayout />}>
37
+ <Route key={'table'} path={'table/*'} element={<Table />} />
38
+ <Route key={'dashboard'} path={'dashboard/*'} element={<Dashboard />} />
39
+ </Route>
40
+ )
41
+ );
31
42
 
32
43
  return (
33
- <div>
34
- Master APP
35
- <Route exact path="/home">
36
- <Home />
37
- </Route>
38
- <Route exact path="/home">
39
- <Contact />
40
- </Route>
41
- </div>
44
+ // 方法一:使用 MApp 自动根据配置的 activeWhen 参数加载子应用(本项目配置在 modern.config.ts 中)
45
+ // <BrowserRouter>
46
+ // <MApp />
47
+ // </BrowserRouter>
48
+
49
+ // 方法二:手动写 Route 组件方式加载子应用,方便于需要鉴权等需要前置操作的场景
50
+ <>
51
+ <RouterProvider router={router} />
52
+ </>
42
53
  );
43
54
  }
44
55
 
@@ -47,11 +58,11 @@ defineConfig(App, {
47
58
  apps: [
48
59
  {
49
60
  // name 区分大小写,name 提供的是什么 useModuleApps 返回的就是什么
50
- name: 'Home',
61
+ name: 'Table',
51
62
  entry: 'http://127.0.0.1:8081/',
52
63
  },
53
64
  {
54
- name: 'Contact',
65
+ name: 'Dashboard',
55
66
  entry: 'http://localhost:8082',
56
67
  },
57
68
  ],
@@ -59,7 +70,7 @@ defineConfig(App, {
59
70
  });
60
71
  ```
61
72
 
62
- 通过 `useModuleApps()` 获取到 `Home` 和 `Contact` 子应用组件(名称和配置里的 `name` 字段对应),之后就可以像使用普通的 React 组件一样去加载子应用。
73
+ 通过 `useModuleApps()` 获取到 `Table` 和 `Dashboard` 子应用组件(名称和配置里的 `name` 字段对应),之后就可以像使用普通的 React 组件一样去加载子应用。
63
74
 
64
75
  ### 集中式路由
65
76
 
@@ -89,13 +100,13 @@ defineConfig(App, {
89
100
  apps: [
90
101
  {
91
102
  // name 区分大小写,name 提供的是什么 useModuleApps 返回的就是什么
92
- name: 'Dashboard',
93
- activeWhen: '/dashboard',
103
+ name: 'Table',
104
+ activeWhen: '/table',
94
105
  entry: 'http://127.0.0.1:8081/',
95
106
  },
96
107
  {
97
- name: 'TableList',
98
- activeWhen: '/table',
108
+ name: 'Dashboard',
109
+ activeWhen: '/dashboard',
99
110
  entry: 'http://localhost:8082',
100
111
  },
101
112
  ],
@@ -103,36 +114,66 @@ defineConfig(App, {
103
114
  });
104
115
  ```
105
116
 
106
- 这样启动应用后,访问 `/dashboard` 路由,会渲染 `Dashboard` 子应用,访问 `/table` 路由,会渲染 `TableList` 子应用。
117
+ 这样启动应用后,访问 `/dashboard` 路由,会渲染 `Dashboard` 子应用,访问 `/table` 路由,会渲染 `Table` 子应用。
107
118
 
108
119
  ## 加载动画
109
120
 
110
121
  可以通过以下方式,自定义组件加载过程的过渡动画。
111
122
 
112
- ```tsx title=App.tsx
113
- function App() {
114
- const { Home } = useModuleApps();
123
+ ```js title="App.tsx"
124
+ import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
115
125
 
116
- return (
117
- <div>
118
- Master APP
119
- <Route exact path="/home">
120
- <Home
121
- loadable={{
122
- loading: ({ pastDelay, error }: any) => {
123
- if (error) {
124
- console.error(error);
125
- return <div>error: {error?.message}</div>;
126
- } else if (pastDelay) {
127
- return <div>loading</div>;
128
- } else {
129
- return null;
126
+ import { RouterProvider, Route, createBrowserRouter, createRoutesFromElements, BrowserRouter, Link, Outlet } from '@modern-js/runtime/router';
127
+
128
+ const AppLayout = () => (
129
+ <>
130
+ <div><Link to={'/table'}>加载约定式路由子应用</Link></div>
131
+ <div><Link to={'/dashboard'}>加载自控式路由子应用</Link></div>
132
+ <div><Link to={'/'}>卸载子应用</Link></div>
133
+ <Outlet />
134
+ </>
135
+ )
136
+
137
+ export default () => {
138
+ const { apps } = useModuleApps();
139
+
140
+ // 使用的不是 MApp 组件,需要使用 createBrowserRouter 来创建路由
141
+ const router = createBrowserRouter(
142
+ createRoutesFromElements(
143
+ <Route path="/" element={<AppLayout />}>
144
+ {apps.map(app => {
145
+ const { Component } = app;
146
+ // 模糊匹配,path 需要写成类似 abc/* 的模式
147
+ return (
148
+ <Route
149
+ key={app.name}
150
+ path={`${app.name.toLowerCase()}/*`}
151
+ element={
152
+ <Component
153
+ loadable={{
154
+ loading: ({ pastDelay, error }: any) => {
155
+ if (error) {
156
+ return <div>error: {error?.message}</div>;
157
+ } else if (pastDelay) {
158
+ return <div>loading</div>;
159
+ } else {
160
+ return null;
161
+ }
162
+ },
163
+ }}
164
+ />
130
165
  }
131
- },
132
- }}
133
- />
166
+ />
167
+ )
168
+ })}
134
169
  </Route>
135
- </div>
170
+ )
136
171
  );
137
- }
172
+
173
+ return (
174
+ <>
175
+ <RouterProvider router={router} />
176
+ </>
177
+ );
178
+ };
138
179
  ```
@@ -21,8 +21,8 @@ interface ProviderProps {
21
21
 
22
22
  ### 参数
23
23
 
24
- - store:[`createStore`](./create-store.md) 创建的 Store 对象。
25
- - config:创建 Reduck Store 的配置,同 [`createApp`](./create-app.md) 的 `config` 参数。
24
+ - store:[`createStore`](./create-store.mdx) 创建的 Store 对象。
25
+ - config:创建 Reduck Store 的配置,同 [`createApp`](./create-app.mdx) 的 `config` 参数。
26
26
 
27
27
  ## 示例
28
28
 
@@ -29,19 +29,19 @@ function createApp(config: AppConfig): object;
29
29
  ### 参数
30
30
 
31
31
  - config:`Record<string, any>`
32
- - StoreConfig:同 [`createStore`](./create-store.md) 的参数。
32
+ - StoreConfig:同 [`createStore`](./create-store.mdx) 的参数。
33
33
  - devTools:默认值为 true。是否开启 Redux DevTools,当为对象类型时,支持配置 Redux DevTools 的 [Options](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Arguments.md)。
34
- - autoActions:默认值为 true。是否[自动生成 Actions](./auto-actions.md)。
34
+ - autoActions:默认值为 true。是否[自动生成 Actions](./auto-actions.mdx)。
35
35
 
36
36
  ### 返回值
37
37
 
38
38
  Reduck App,有以下属性组成:
39
39
 
40
- - Provider:为应用局部的组件树注入共享 Store 的组件。用法同 [`Provider`](./Provider.md)。
41
- - useModel:获取应用局部 Store 挂载的 Model 对象。用法同 [`useModel`](./use-model.md)。
42
- - useStaticModel:获取应用局部 Store 挂载的 Model 对象。用法同 [`useStaticModel`](./use-static-model.md)。
43
- - useLocalModel:获取应用局部 Store 挂载的 Model 对象。用法同 [`useLocalModel`](./use-local-model.md)。
44
- - useStore:获取应用局部使用的 Store 对象。用法同 [`useStore`](./use-store.md)。
40
+ - Provider:为应用局部的组件树注入共享 Store 的组件。用法同 [`Provider`](./Provider.mdx)。
41
+ - useModel:获取应用局部 Store 挂载的 Model 对象。用法同 [`useModel`](./use-model.mdx)。
42
+ - useStaticModel:获取应用局部 Store 挂载的 Model 对象。用法同 [`useStaticModel`](./use-static-model.mdx)。
43
+ - useLocalModel:获取应用局部 Store 挂载的 Model 对象。用法同 [`useLocalModel`](./use-local-model.mdx)。
44
+ - useStore:获取应用局部使用的 Store 对象。用法同 [`useStore`](./use-store.mdx)。
45
45
 
46
46
  ## 示例
47
47
 
@@ -10,7 +10,7 @@ import ReduckTip from "@site-docs/components/reduck-tip"
10
10
 
11
11
  `createStore` 用于创建一个 Store 对象。Reduck 的 Store 基于 Redux 的 [Store](https://redux.js.org/api/store) 实现,用于存储应用的状态,同时提供一组用于管理状态和 Model 的方法。
12
12
 
13
- 一般情况下,不需要使用这个 API,只有需要完全掌控 Store 的创建时,才会使用这个 API。例如,自定义一个 Store,传入 [`Provider`](./Provider.md) 组件使用。
13
+ 一般情况下,不需要使用这个 API,只有需要完全掌控 Store 的创建时,才会使用这个 API。例如,自定义一个 Store,传入 [`Provider`](./Provider.mdx) 组件使用。
14
14
 
15
15
  ## 函数签名
16
16
 
@@ -44,7 +44,7 @@ function createStore(config: StoreConfig): ReduckStore;
44
44
 
45
45
  Reduck Store 对象:
46
46
 
47
- - use:动态挂载和获取 Model 对象。用法与 [`useModel`](./use-model.md) 相同,但可以在 React 组件外使用。
47
+ - use:动态挂载和获取 Model 对象。用法与 [`useModel`](./use-model.mdx) 相同,但可以在 React 组件外使用。
48
48
  - unmount:卸载 Model 对象,Model 的 State 会从 Store 中清除。
49
49
  - ReduxStore:Redux Store 对象具有的方法,[详见](https://redux.js.org/tutorials/fundamentals/part-4-store#redux-store)。
50
50
 
@@ -8,7 +8,7 @@ import ReduckTip from "@site-docs/components/reduck-tip"
8
8
 
9
9
  <ReduckTip />
10
10
 
11
- 用于把 Model 中的 State 作为局部状态使用,效果类似 React 的 `useState`。`useLocalModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.md)。
11
+ 用于把 Model 中的 State 作为局部状态使用,效果类似 React 的 `useState`。`useLocalModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.mdx)。
12
12
 
13
13
  #### 示例
14
14
 
@@ -8,7 +8,7 @@ import ReduckTip from "@site-docs/components/reduck-tip"
8
8
 
9
9
  <ReduckTip />
10
10
 
11
- 如果想在组件里以 React Hook 的形式消费某个 Model,并能随时获取到当前最新的状态,但又不希望 Model 状态更新的时候,引起组件的重新渲染,可以使用 `useStaticModel`。`useStaticModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.md)。
11
+ 如果想在组件里以 React Hook 的形式消费某个 Model,并能随时获取到当前最新的状态,但又不希望 Model 状态更新的时候,引起组件的重新渲染,可以使用 `useStaticModel`。`useStaticModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.mdx)。
12
12
 
13
13
  为了保证总是能获取到最新状态,注意不要对返回的 `state` 解构。
14
14
 
@@ -18,7 +18,7 @@ function useStore(): ReduckStore;
18
18
 
19
19
  ### 返回值
20
20
 
21
- - ReduckStore:Reduck Store,类型参考 [createStore](./create-store.md) 返回值。
21
+ - ReduckStore:Reduck Store,类型参考 [createStore](./create-store.mdx) 返回值。
22
22
 
23
23
  :::info 更多参考
24
24
  [使用 Model](/guides/topic-detail/model/use-model#在组件外使用)
@@ -15,7 +15,7 @@ import { renderApp } from '@modern-js/runtime/testing';
15
15
 
16
16
  ## 函数签名
17
17
 
18
- `renderApp` 和 [render](./render.md) 完全一致。
18
+ `renderApp` 和 [render](./render.mdx) 完全一致。
19
19
 
20
20
  ## 示例
21
21
 
@@ -31,11 +31,11 @@ Modern.js 生成器除了在项目初始化时工作外,也能在后续研发
31
31
  .
32
32
  ├── node_modules
33
33
  ├── src
34
-    ├── modern-app-env.d.ts
35
-    └── routes
36
-    ├── index.css
37
-    ├── layout.tsx
38
-    └── page.tsx
34
+ ├── modern-app-env.d.ts
35
+ └── routes
36
+ ├── index.css
37
+ ├── layout.tsx
38
+ └── page.tsx
39
39
  ├── modern.config.ts
40
40
  ├── package.json
41
41
  ├── pnpm-lock.yaml
@@ -4,13 +4,13 @@ import { defineConfig } from '@modern-js/runtime';
4
4
  defineConfig(App, {
5
5
  masterApp: {
6
6
  apps: [{
7
- name: 'SubConvention',
8
- entry: 'http://localhost:3002',
9
- // activeWhen: '/SubConvention'
7
+ name: 'Table',
8
+ entry: 'http://localhost:8001',
9
+ // activeWhen: '/table'
10
10
  }, {
11
- name: 'SubCustom',
12
- entry: 'http://localhost:3003'
13
- // activeWhen: '/SubConvention'
11
+ name: 'Dashboard',
12
+ entry: 'http://localhost:8002'
13
+ // activeWhen: '/dashboard'
14
14
  }]
15
15
  },
16
16
  });
@@ -1 +1 @@
1
- 根据官网 [Release Note](https://github.com/modern-js-dev/modern.js/releases/tag/v1.22.1),开发者也可以手动将项目升级到想要的版本。
1
+ 根据官网 [Release Note](https://github.com/modern-js-dev/modern.js/releases),开发者也可以手动将项目升级到想要的版本。
@@ -8,7 +8,7 @@ sidebar_label: prefix
8
8
  - **默认值:** `/api`
9
9
 
10
10
  :::caution 注意
11
- 请先在当前应用项目根目录使用【[new](/apis/app/commands/new)】 启用 BFF 功能。
11
+ 请先在当前应用项目根目录使用【[new](/apis/app/commands#modern-new)】 启用 BFF 功能。
12
12
 
13
13
  :::
14
14
 
@@ -8,7 +8,7 @@ sidebar_label: proxy
8
8
  - **默认值:** `{}`
9
9
 
10
10
  :::info 补充信息
11
- 请先在当前应用项目根目录使用【[new](/apis/app/commands/new)】 启用 BFF 功能。
11
+ 请先在当前应用项目根目录使用【[new](/apis/app/commands#modern-new)】 启用 BFF 功能。
12
12
 
13
13
  :::
14
14
 
@@ -9,7 +9,7 @@ sidebar_position: 10
9
9
 
10
10
  用于配置 Modern.js Builder 构建插件。
11
11
 
12
- Modern.js Builder 是 Modern.js 底层的构建引擎,请阅读 [构建能力](/guides/basic-features/builder) 了解相关背景。
12
+ Modern.js Builder 是 Modern.js 底层的构建引擎,请阅读 [构建能力](/guides/concept/builder) 了解相关背景。
13
13
 
14
14
  如果你想了解 Builder 插件的编写方式,可以参考 [Modern.js Builder - 插件系统](https://modernjs.dev/builder/plugins/introduction.html)。
15
15
 
@@ -17,13 +17,13 @@ Modern.js Builder 是 Modern.js 底层的构建引擎,请阅读 [构建能力]
17
17
 
18
18
  该选项**用于配置 Modern.js Builder 构建插件**,如果你需要配置其他类型的插件,请选择对应的配置方式:
19
19
 
20
- - 配置 Modern.js 框架插件,请使用 [plugins](docs/configure/app/plugins) 配置项。
20
+ - 配置 Modern.js 框架插件,请使用 [plugins](/configure/app/plugins) 配置项。
21
21
  - 配置 webpack 插件,请使用 [tools.webpack](/configure/app/tools/webpack) 或 [tools.webpackChain](/configure/app/tools/webpack-chain) 配置项。
22
22
  - 配置 Babel 插件,请使用 [tools.babel](/configure/app/tools/babel) 配置项。
23
23
 
24
24
  ## 何时使用
25
25
 
26
- 大部分场景下,我们推荐你使用 Modern.js 框架插件,框架插件可以通过 [plugins](docs/configure/app/plugins) 字段进行注册。因为框架插件提供的 API 更丰富、能力更强,而 Builder 插件提供的 API 只能用于构建场景。
26
+ 大部分场景下,我们推荐你使用 Modern.js 框架插件,框架插件可以通过 [plugins](/configure/app/plugins) 字段进行注册。因为框架插件提供的 API 更丰富、能力更强,而 Builder 插件提供的 API 只能用于构建场景。
27
27
 
28
28
  当你需要引用一些现有的 Builder 插件(并且在 Modern.js 中没有相关能力),或是在不同的框架之间复用 Builder 插件时,你可以使用 `builderPlugins` 字段进行注册。
29
29
 
@@ -0,0 +1,13 @@
1
+ ---
2
+ sidebar_label: beforeStartUrl
3
+ ---
4
+
5
+ # dev.beforeStartUrl
6
+
7
+ :::tip
8
+ 该配置由 Modern.js Builder 提供,更多信息可参考 [dev.beforeStartUrl](https://modernjs.dev/builder/api/config-dev.html#devbeforestarturl)。
9
+ :::
10
+
11
+ import Main from '@modern-js/builder-doc/docs/zh/config/dev/beforeStartUrl.md'
12
+
13
+ <Main />
@@ -0,0 +1,13 @@
1
+ ---
2
+ sidebar_label: host
3
+ ---
4
+
5
+ # dev.host
6
+
7
+ :::tip
8
+ 该配置由 Modern.js Builder 提供,更多信息可参考 [dev.host](https://modernjs.dev/builder/api/config-dev.html#devhost)。
9
+ :::
10
+
11
+ import Main from '@modern-js/builder-doc/docs/zh/config/dev/host.md'
12
+
13
+ <Main />
@@ -66,7 +66,7 @@ import SelfRouteExample from "@site-docs/components/self-route-example";
66
66
  ```bash
67
67
 
68
68
  ├── src
69
-    ├── entryA
69
+ ├── entryA
70
70
  │ │ └── routes
71
71
  │ │ ├── layout.tsx
72
72
  │ │ ├── page.tsx
@@ -75,8 +75,8 @@ import SelfRouteExample from "@site-docs/components/self-route-example";
75
75
  │ │ ├── page.tsx
76
76
  │ │ └── profile
77
77
  │ │ └── page.tsx
78
-    └── entryB
79
-    └── App.tsx
78
+ └── entryB
79
+ └── App.tsx
80
80
  ```
81
81
 
82
82
  默认情况下,所有约定式路由的入口,在设置 `output.ssg` 配置为 `true` 后都会在构建阶段渲染。可以配置 `false` 来取消指定入口的的默认行为,例如取消上述 entryA 入口在构建时的渲染:
@@ -15,7 +15,7 @@ sidebar_position: 9
15
15
 
16
16
  该选项**用于配置框架插件**,如果你需要配置其他类型的插件,请选择对应的配置方式:
17
17
 
18
- - 配置 Modern.js Builder 插件,请使用 [builderPlugins](docs/configure/app/builder-plugins) 配置项。
18
+ - 配置 Modern.js Builder 插件,请使用 [builderPlugins](/configure/app/builder-plugins) 配置项。
19
19
  - 配置 webpack 插件,请使用 [tools.webpack](/configure/app/tools/webpack) 或 [tools.webpackChain](/configure/app/tools/webpack-chain) 配置项。
20
20
  - 配置 Babel 插件,请使用 [tools.babel](/configure/app/tools/babel) 配置项。
21
21
 
@@ -7,7 +7,7 @@ sidebar_label: ssrByEntries
7
7
  - **类型:** `Object`
8
8
  - **默认值:** `undefined`
9
9
 
10
- 按入口设置 ssr 选项,选项内的属性同 [ssr](./ssr.md),指定值会和 ssr 属性内容做替换合并操作,例如:
10
+ 按入口设置 ssr 选项,选项内的属性同 [ssr](./ssr.mdx),指定值会和 ssr 属性内容做替换合并操作,例如:
11
11
 
12
12
  :::info
13
13
  「 入口名 」默认为目录名,少数情况下通过 `source.entries` 自定义入口时,入口名为 `source.entries` 对象的 `key`。
@@ -25,7 +25,7 @@ export default defineConfig({
25
25
  └── src
26
26
  └── pages
27
27
  ├── a
28
-    └── App.jsx
28
+ └── App.jsx
29
29
  └── b
30
30
  └── App.jsx
31
31
  ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ sidebar_label: rspack
3
+ ---
4
+
5
+ # tools.rspack
6
+
7
+ :::tip
8
+ 该配置由 Modern.js Builder 提供,更多信息可参考 [tools.rspack](https://modernjs.dev/builder/api/config-tools.html#toolsrspack)。
9
+ :::
10
+
11
+ import Main from '@modern-js/builder-doc/docs/zh/config/tools/rspack.md'
12
+
13
+ <Main />
@@ -12,7 +12,7 @@ Modern.js 中有两种配置,一个是编译时配置,一个是服务端运
12
12
  - `package.json` 文件
13
13
 
14
14
  :::info
15
- 不支持同时在 package.json 中和 modern.config.ts 中配置同一个配置项,推荐优先在 modern.config.ts 中进行配置。如果 Modern.js 检测到重复配置导致的冲突,将会抛出警告。
15
+ Modern.js 不支持同时在 package.json 中和 modern.config.ts 中配置同一个配置项,推荐优先在 modern.config.ts 中进行配置。如果 Modern.js 检测到重复配置导致的冲突,将会抛出警告。
16
16
  :::
17
17
 
18
18
  服务端运行时配置可以在根路径下的 `modern.server-runtime.config.(ts|js|mjs)` 中自定义配置选项。
@@ -1,9 +1,5 @@
1
1
  {
2
2
  "label": "进阶功能",
3
- "position": 4,
4
- "collapsed": true,
5
- "link": {
6
- "type": "doc",
7
- "id": "guides/advanced-features/index"
8
- }
3
+ "position": 6,
4
+ "collapsed": false
9
5
  }
@@ -55,7 +55,6 @@ Modern.js 中还提供了基于浏览器 [UA](https://developer.mozilla.org/zh-C
55
55
  ```ts title="modern.config.ts"
56
56
  import polyfillPlugin from '@modern-js/plugin-polyfill';
57
57
 
58
- // https://modernjs.dev/docs/apis/app/config
59
58
  export default defineConfig({
60
59
  plugins: [..., polyfillPlugin()],
61
60
  });
@@ -0,0 +1,69 @@
1
+ ---
2
+ title: 使用 Rspack
3
+ sidebar_position: 12
4
+ ---
5
+
6
+ # 使用 Rspack
7
+
8
+ [Rspack](https://www.rspack.org/) 是字节跳动 Web Infra 团队自研的 Rust Bundler,核心架构对齐 webpack 实现,并对社区常用的构建能力做了开箱即用的支持。
9
+
10
+ Rspack 通过以下方式来提升编译性能:
11
+
12
+ - 高度 LTO 优化的 Native code。
13
+ - 充分利用多核优势,整个编译过程充分进行多线程优化。
14
+ - 基于请求的按需编译(Lazy Compilation),减小每次编译的模块数目,以提升冷启动的速度。
15
+
16
+ ## 初始化 rspack 项目
17
+
18
+ Modern.js 生成器会提供一个可交互的问答界面,只需将构建工具选择为**rspack**,即可创建一个 rspack 项目:
19
+
20
+ ```bash
21
+ $ npx @modern-js/create myapp
22
+ ? 请选择你想创建的工程类型 应用
23
+ ? 请选择开发语言 TS
24
+ ? 请选择包管理工具 pnpm
25
+ ? 请选择构建工具 rspack
26
+ ```
27
+
28
+ 项目创建完成后,在项目中执行 `pnpm run dev` 即可体验项目。更多项目信息可参考[快速上手](/guides/get-started/quick-start.html)。
29
+
30
+ :::tip
31
+ 使用 rspack 作为打包工具时,以下功能暂不支持使用:
32
+
33
+ - 服务端渲染(SSR)
34
+ - 静态站点生成(SSG)
35
+ - 微前端(Micro Frontend)
36
+ - Storybook 调试
37
+
38
+ :::
39
+
40
+ ## 从 webpack 迁移至 rspack
41
+
42
+ 通过执行 `pnpm run new` 可启用 rspack 构建:
43
+
44
+ ```bash
45
+ $ pnpm run new
46
+ ? 请选择你想要的操作 启用可选功能
47
+ ? 启用可选功能 启用「rspack 构建」
48
+ ```
49
+
50
+ 执行命令后,在 modern.config.ts 中开启 rspack 构建:
51
+
52
+ ```ts title=modern.config.ts
53
+ import appTools, { defineConfig } from '@modern-js/app-tools';
54
+
55
+ export default defineConfig<'rspack'>({
56
+ runtime: {
57
+ router: true,
58
+ },
59
+ plugins: [
60
+ appTools({
61
+ bundler: 'experimental-rspack',
62
+ }),
63
+ ],
64
+ });
65
+ ```
66
+
67
+ :::tip
68
+ 从 webpack 迁移至 rspack,会有一些构建和配置能力上的差异,详情可参考:[配置差异](https://modernjs.dev/builder/guide/advanced/rspack-start.html#从-webpack-迁移到-rspack)
69
+ :::
@@ -18,7 +18,6 @@ SSG(Static Site Generation)是一种基于数据与模板,在构建时渲
18
18
  ```ts title="modern.config.ts"
19
19
  import ssgPlugin from '@modern-js/plugin-ssg';
20
20
 
21
- // https://modernjs.dev/docs/apis/app/config
22
21
  export default defineConfig({
23
22
  output: {
24
23
  ssg: true,
@@ -38,14 +37,14 @@ SSG 在**约定式路由**和**自控式路由**下的使用方式不同。
38
37
  ```
39
38
  .
40
39
  ├── src
41
-    └── routes
42
-    ├── layout.tsx
43
-    ├── page.tsx
44
-    └── user
45
-    ├── layout.tsx
46
-    ├── page.tsx
47
-    └── profile
48
-    └── page.tsx
40
+ └── routes
41
+ ├── layout.tsx
42
+ ├── page.tsx
43
+ └── user
44
+ ├── layout.tsx
45
+ ├── page.tsx
46
+ └── profile
47
+ └── page.tsx
49
48
  ```
50
49
 
51
50
  上述文件目录将会生成以下三条路由:
@@ -20,8 +20,8 @@ sidebar_position: 3
20
20
 
21
21
  Modern.js 中提供了 Data Loader,方便开发者在 SSR、CSR 下同构的获取数据。每个路由模块,如 `layout.tsx` 和 `page.tsx` 都可以定义自己的 Data Loader:
22
22
 
23
- ```ts title="src/routes/page.tsx"
24
- export const loader = () => {
23
+ ```ts title="src/routes/page.loader.ts"
24
+ export default () => {
25
25
  return {
26
26
  message: 'Hello World',
27
27
  };
@@ -31,6 +31,7 @@ export const loader = () => {
31
31
  在组件中可以通过 Hooks API 的方式获取 `loader` 函数返回的数据:
32
32
 
33
33
  ```tsx
34
+ import { useLoaderData } from '@modern-js/runtime/router'
34
35
  export default () => {
35
36
  const data = useLoaderData();
36
37
  return <div>{data.message}</div>;
@@ -20,7 +20,6 @@ Modern.js 默认继承了 [Jest](https://jestjs.io/) 的测试能力。
20
20
  ```ts title="modern.config.ts"
21
21
  import testPlugin from '@modern-js/plugin-testing';
22
22
 
23
- // https://modernjs.dev/docs/apis/app/config
24
23
  export default defineConfig({
25
24
  ...,
26
25
  plugins: [..., testPlugin()],
@@ -22,7 +22,6 @@ Modern.js 作为以客户端为中心的开发框架,对服务端的定制能
22
22
  ```ts title="modern.config.ts"
23
23
  import serverPlugin from '@modern-js/plugin-server';
24
24
 
25
- // https://modernjs.dev/docs/apis/app/config
26
25
  export default defineConfig({
27
26
  plugins: [..., serverPlugin()],
28
27
  });
@@ -1,9 +1,5 @@
1
1
  {
2
2
  "label": "基础功能",
3
3
  "position": 3,
4
- "collapsed": false,
5
- "link": {
6
- "type": "doc",
7
- "id": "guides/basic-features/index"
8
- }
4
+ "collapsed": false
9
5
  }