@modern-js/main-doc 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/en/components/global-proxy-config.mdx +2 -2
  3. package/en/components/init-app.mdx +1 -1
  4. package/en/configure/app/auto-load-plugin.mdx +2 -2
  5. package/en/configure/app/bff/prefix.mdx +2 -2
  6. package/en/configure/app/bff/proxy.mdx +2 -2
  7. package/en/configure/app/builder-plugins.mdx +2 -2
  8. package/en/configure/app/deploy/microFrontend.mdx +6 -6
  9. package/en/configure/app/dev/asset-prefix.mdx +4 -3
  10. package/en/configure/app/dev/hmr.mdx +4 -3
  11. package/en/configure/app/dev/https.mdx +4 -3
  12. package/en/configure/app/dev/port.mdx +4 -3
  13. package/en/configure/app/dev/progress-bar.mdx +4 -3
  14. package/en/configure/app/dev/start-url.mdx +4 -3
  15. package/en/configure/app/experiments/lazy-compilation.mdx +4 -3
  16. package/en/configure/app/html/app-icon.mdx +4 -3
  17. package/en/configure/app/html/crossorigin.mdx +4 -3
  18. package/en/configure/app/html/disable-html-folder.mdx +4 -3
  19. package/en/configure/app/html/favicon-by-entries.mdx +4 -3
  20. package/en/configure/app/html/favicon.mdx +4 -3
  21. package/en/configure/app/html/inject-by-entries.mdx +4 -3
  22. package/en/configure/app/html/inject.mdx +4 -3
  23. package/en/configure/app/html/meta-by-entries.mdx +4 -3
  24. package/en/configure/app/html/meta.mdx +4 -3
  25. package/en/configure/app/html/mount-id.mdx +4 -3
  26. package/en/configure/app/html/tags-by-entries.mdx +4 -3
  27. package/en/configure/app/html/tags.mdx +4 -3
  28. package/en/configure/app/html/template-by-entries.mdx +4 -3
  29. package/en/configure/app/html/template-parameters-by-entries.mdx +4 -3
  30. package/en/configure/app/html/template-parameters.mdx +4 -3
  31. package/en/configure/app/html/template.mdx +4 -3
  32. package/en/configure/app/html/title-by-entries.mdx +4 -3
  33. package/en/configure/app/html/title.mdx +4 -3
  34. package/en/configure/app/output/asset-prefix.mdx +4 -3
  35. package/en/configure/app/output/assets-retry.mdx +4 -3
  36. package/en/configure/app/output/charset.mdx +4 -3
  37. package/en/configure/app/output/clean-dist-path.mdx +4 -3
  38. package/en/configure/app/output/convert-to-rem.mdx +4 -3
  39. package/en/configure/app/output/copy.mdx +4 -3
  40. package/en/configure/app/output/css-module-local-ident-name.mdx +4 -3
  41. package/en/configure/app/output/data-uri-limit.mdx +4 -3
  42. package/en/configure/app/output/disable-css-extract.mdx +4 -3
  43. package/en/configure/app/output/disable-css-module-extension.mdx +4 -3
  44. package/en/configure/app/output/disable-filename-hash.mdx +4 -3
  45. package/en/configure/app/output/disable-inline-runtime-chunk.mdx +4 -3
  46. package/en/configure/app/output/disable-minimize.mdx +4 -3
  47. package/en/configure/app/output/disable-node-polyfill.mdx +2 -2
  48. package/en/configure/app/output/disable-source-map.mdx +4 -3
  49. package/en/configure/app/output/disable-ts-checker.mdx +4 -3
  50. package/en/configure/app/output/dist-path.mdx +4 -3
  51. package/en/configure/app/output/enable-asset-fallback.mdx +4 -3
  52. package/en/configure/app/output/enable-asset-manifest.mdx +4 -3
  53. package/en/configure/app/output/enable-css-module-tsdeclaration.mdx +4 -3
  54. package/en/configure/app/output/enable-inline-scripts.mdx +4 -3
  55. package/en/configure/app/output/enable-inline-styles.mdx +4 -3
  56. package/en/configure/app/output/enable-latest-decorators.mdx +4 -3
  57. package/en/configure/app/output/externals.mdx +4 -3
  58. package/en/configure/app/output/filename.mdx +4 -3
  59. package/en/configure/app/output/legal-comments.mdx +4 -3
  60. package/en/configure/app/output/override-browserslist.mdx +4 -3
  61. package/en/configure/app/output/polyfill.mdx +4 -3
  62. package/en/configure/app/output/ssg.mdx +2 -2
  63. package/en/configure/app/output/svg-default-export.mdx +4 -3
  64. package/en/configure/app/performance/build-cache.mdx +4 -3
  65. package/en/configure/app/performance/bundle-analyze.mdx +4 -3
  66. package/en/configure/app/performance/chunk-split.mdx +4 -3
  67. package/en/configure/app/performance/print-file-size.mdx +4 -3
  68. package/en/configure/app/performance/profile.mdx +4 -3
  69. package/en/configure/app/performance/remove-console.mdx +4 -3
  70. package/en/configure/app/performance/remove-moment-locale.mdx +4 -3
  71. package/en/configure/app/plugins.mdx +2 -2
  72. package/en/configure/app/runtime/intro.mdx +2 -2
  73. package/en/configure/app/runtime/master-app.mdx +1 -2
  74. package/en/configure/app/runtime/router.mdx +6 -6
  75. package/en/configure/app/runtime/state.mdx +14 -14
  76. package/en/configure/app/security/check-syntax.mdx +13 -0
  77. package/en/configure/app/security/sri.mdx +4 -3
  78. package/en/configure/app/server/base-url.mdx +2 -2
  79. package/en/configure/app/server/enable-framework-ext.mdx +2 -2
  80. package/en/configure/app/server/port.mdx +2 -2
  81. package/en/configure/app/server/public-routes.mdx +2 -2
  82. package/en/configure/app/server/routes.mdx +2 -2
  83. package/en/configure/app/server/ssr-by-entries.mdx +2 -2
  84. package/en/configure/app/server/ssr.mdx +2 -2
  85. package/en/configure/app/source/alias.mdx +4 -3
  86. package/en/configure/app/source/compile-js-data-uri.mdx +4 -3
  87. package/en/configure/app/source/config-dir.mdx +2 -2
  88. package/en/configure/app/source/define.mdx +4 -3
  89. package/en/configure/app/source/design-system.mdx +2 -2
  90. package/en/configure/app/source/disable-default-entries.mdx +2 -2
  91. package/en/configure/app/source/disable-entry-dirs.mdx +2 -2
  92. package/en/configure/app/source/enable-async-entry.mdx +2 -2
  93. package/en/configure/app/source/entries-dir.mdx +2 -2
  94. package/en/configure/app/source/entries.mdx +2 -2
  95. package/en/configure/app/source/exclude.mdx +4 -3
  96. package/en/configure/app/source/global-vars.mdx +4 -3
  97. package/en/configure/app/source/include.mdx +4 -3
  98. package/en/configure/app/source/module-scopes.mdx +4 -3
  99. package/en/configure/app/source/pre-entry.mdx +4 -3
  100. package/en/configure/app/source/resolve-extension-prefix.mdx +4 -3
  101. package/en/configure/app/source/resolve-main-fields.mdx +4 -3
  102. package/en/configure/app/testing/transformer.mdx +2 -2
  103. package/en/configure/app/tools/autoprefixer.mdx +4 -3
  104. package/en/configure/app/tools/babel.mdx +4 -3
  105. package/en/configure/app/tools/css-extract.mdx +4 -3
  106. package/en/configure/app/tools/css-loader.mdx +4 -3
  107. package/en/configure/app/tools/dev-server.mdx +4 -3
  108. package/en/configure/app/tools/esbuild.mdx +2 -2
  109. package/en/configure/app/tools/html-plugin.mdx +4 -3
  110. package/en/configure/app/tools/inspector.mdx +4 -3
  111. package/en/configure/app/tools/jest.mdx +2 -2
  112. package/en/configure/app/tools/less.mdx +4 -3
  113. package/en/configure/app/tools/minify-css.mdx +4 -3
  114. package/en/configure/app/tools/postcss.mdx +4 -3
  115. package/en/configure/app/tools/pug.mdx +4 -3
  116. package/en/configure/app/tools/sass.mdx +4 -3
  117. package/en/configure/app/tools/style-loader.mdx +4 -3
  118. package/en/configure/app/tools/styled-components.mdx +4 -3
  119. package/en/configure/app/tools/swc.mdx +2 -2
  120. package/en/configure/app/tools/tailwindcss.mdx +8 -16
  121. package/en/configure/app/tools/terser.mdx +4 -3
  122. package/en/configure/app/tools/ts-checker.mdx +4 -3
  123. package/en/configure/app/tools/ts-loader.mdx +4 -3
  124. package/en/configure/app/tools/webpack-chain.mdx +4 -3
  125. package/en/configure/app/tools/webpack.mdx +4 -3
  126. package/en/configure/app/usage.mdx +117 -8
  127. package/en/guides/advanced-features/_category_.json +5 -0
  128. package/en/guides/advanced-features/ssr.mdx +2 -2
  129. package/en/guides/basic-features/_category_.json +5 -0
  130. package/en/guides/basic-features/builder.mdx +3 -3
  131. package/en/guides/basic-features/routes.mdx +28 -0
  132. package/en/guides/concept/_category_.json +5 -0
  133. package/en/guides/get-started/_category_.json +5 -0
  134. package/en/guides/topic-detail/generator/config/{mwa.mdx → app.mdx} +1 -1
  135. package/en/guides/topic-detail/generator/config/common.mdx +12 -12
  136. package/en/guides/topic-detail/generator/plugin/api/new/createElement.mdx +1 -1
  137. package/en/guides/topic-detail/generator/plugin/api/new/enableFunc.mdx +1 -1
  138. package/en/guides/topic-detail/generator/plugin/api/new/introduce.mdx +1 -1
  139. package/en/guides/topic-detail/generator/plugin/develop.mdx +2 -2
  140. package/package.json +3 -3
  141. package/scripts/config.ts +6 -5
  142. package/scripts/summary.en.json +1 -1
  143. package/scripts/summary.zh.json +1 -1
  144. package/zh/apis/app/commands/test.mdx +1 -1
  145. package/zh/apis/app/hooks/api/functions/api.mdx +2 -2
  146. package/zh/apis/app/hooks/api/test.mdx +1 -1
  147. package/zh/apis/app/hooks/config/storybook.mdx +1 -1
  148. package/zh/apis/app/hooks/config/upload.mdx +1 -1
  149. package/zh/apis/app/hooks/server/test.mdx +1 -1
  150. package/zh/apis/app/hooks/src/stories.mdx +1 -1
  151. package/zh/apis/app/hooks/src/test.mdx +1 -1
  152. package/zh/apis/app/runtime/testing/cleanup.mdx +1 -1
  153. package/zh/apis/monorepo/commands/bump.mdx +1 -1
  154. package/zh/apis/monorepo/commands/change.mdx +1 -1
  155. package/zh/apis/monorepo/hooks/apps.mdx +1 -1
  156. package/zh/apis/monorepo/hooks/examples.mdx +1 -1
  157. package/zh/apis/monorepo/hooks/features.mdx +1 -1
  158. package/zh/apis/monorepo/hooks/packages.mdx +1 -1
  159. package/zh/components/custom-router-micro-frontend.mdx +40 -0
  160. package/zh/components/enable-micro-frontend.mdx +12 -2
  161. package/zh/components/global-proxy-config.mdx +3 -3
  162. package/zh/components/micro-runtime-config.mdx +9 -10
  163. package/zh/configure/app/auto-load-plugin.mdx +2 -2
  164. package/zh/configure/app/bff/prefix.mdx +2 -2
  165. package/zh/configure/app/bff/proxy.mdx +3 -3
  166. package/zh/configure/app/builder-plugins.mdx +2 -2
  167. package/zh/configure/app/deploy/microFrontend.mdx +6 -6
  168. package/zh/configure/app/dev/asset-prefix.mdx +4 -3
  169. package/zh/configure/app/dev/hmr.mdx +4 -3
  170. package/zh/configure/app/dev/https.mdx +4 -3
  171. package/zh/configure/app/dev/port.mdx +4 -3
  172. package/zh/configure/app/dev/progress-bar.mdx +4 -3
  173. package/zh/configure/app/dev/start-url.mdx +4 -3
  174. package/zh/configure/app/experiments/lazy-compilation.mdx +4 -3
  175. package/zh/configure/app/html/app-icon.mdx +4 -3
  176. package/zh/configure/app/html/crossorigin.mdx +4 -3
  177. package/zh/configure/app/html/disable-html-folder.mdx +4 -3
  178. package/zh/configure/app/html/favicon-by-entries.mdx +4 -3
  179. package/zh/configure/app/html/favicon.mdx +4 -3
  180. package/zh/configure/app/html/inject-by-entries.mdx +4 -3
  181. package/zh/configure/app/html/inject.mdx +4 -3
  182. package/zh/configure/app/html/meta-by-entries.mdx +4 -3
  183. package/zh/configure/app/html/meta.mdx +4 -3
  184. package/zh/configure/app/html/mount-id.mdx +4 -3
  185. package/zh/configure/app/html/tags-by-entries.mdx +4 -3
  186. package/zh/configure/app/html/tags.mdx +4 -3
  187. package/zh/configure/app/html/template-by-entries.mdx +4 -3
  188. package/zh/configure/app/html/template-parameters-by-entries.mdx +4 -3
  189. package/zh/configure/app/html/template-parameters.mdx +4 -3
  190. package/zh/configure/app/html/template.mdx +4 -3
  191. package/zh/configure/app/html/title-by-entries.mdx +4 -3
  192. package/zh/configure/app/html/title.mdx +4 -3
  193. package/zh/configure/app/output/asset-prefix.mdx +4 -3
  194. package/zh/configure/app/output/assets-retry.mdx +4 -3
  195. package/zh/configure/app/output/charset.mdx +4 -3
  196. package/zh/configure/app/output/clean-dist-path.mdx +4 -3
  197. package/zh/configure/app/output/convert-to-rem.mdx +4 -3
  198. package/zh/configure/app/output/copy.mdx +4 -3
  199. package/zh/configure/app/output/css-module-local-ident-name.mdx +4 -3
  200. package/zh/configure/app/output/data-uri-limit.mdx +4 -3
  201. package/zh/configure/app/output/disable-css-extract.mdx +4 -3
  202. package/zh/configure/app/output/disable-css-module-extension.mdx +4 -3
  203. package/zh/configure/app/output/disable-filename-hash.mdx +4 -3
  204. package/zh/configure/app/output/disable-inline-runtime-chunk.mdx +4 -3
  205. package/zh/configure/app/output/disable-minimize.mdx +4 -3
  206. package/zh/configure/app/output/disable-node-polyfill.mdx +2 -2
  207. package/zh/configure/app/output/disable-source-map.mdx +4 -3
  208. package/zh/configure/app/output/disable-ts-checker.mdx +4 -3
  209. package/zh/configure/app/output/dist-path.mdx +4 -3
  210. package/zh/configure/app/output/enable-asset-fallback.mdx +4 -3
  211. package/zh/configure/app/output/enable-asset-manifest.mdx +4 -3
  212. package/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +4 -3
  213. package/zh/configure/app/output/enable-inline-scripts.mdx +4 -3
  214. package/zh/configure/app/output/enable-inline-styles.mdx +4 -3
  215. package/zh/configure/app/output/enable-latest-decorators.mdx +4 -3
  216. package/zh/configure/app/output/externals.mdx +4 -3
  217. package/zh/configure/app/output/filename.mdx +4 -3
  218. package/zh/configure/app/output/legal-comments.mdx +4 -3
  219. package/zh/configure/app/output/override-browserslist.mdx +4 -3
  220. package/zh/configure/app/output/polyfill.mdx +4 -3
  221. package/zh/configure/app/output/ssg.mdx +2 -2
  222. package/zh/configure/app/output/svg-default-export.mdx +4 -3
  223. package/zh/configure/app/performance/build-cache.mdx +4 -3
  224. package/zh/configure/app/performance/bundle-analyze.mdx +4 -3
  225. package/zh/configure/app/performance/chunk-split.mdx +4 -3
  226. package/zh/configure/app/performance/print-file-size.mdx +4 -3
  227. package/zh/configure/app/performance/profile.mdx +4 -3
  228. package/zh/configure/app/performance/remove-console.mdx +4 -3
  229. package/zh/configure/app/performance/remove-moment-locale.mdx +4 -3
  230. package/zh/configure/app/plugins.mdx +2 -2
  231. package/zh/configure/app/runtime/intro.mdx +3 -3
  232. package/zh/configure/app/runtime/master-app.mdx +1 -1
  233. package/zh/configure/app/runtime/router.mdx +6 -6
  234. package/zh/configure/app/runtime/state.mdx +14 -14
  235. package/zh/configure/app/security/check-syntax.mdx +13 -0
  236. package/zh/configure/app/security/sri.mdx +4 -3
  237. package/zh/configure/app/server/base-url.mdx +2 -2
  238. package/zh/configure/app/server/enable-framework-ext.mdx +2 -2
  239. package/zh/configure/app/server/port.mdx +2 -2
  240. package/zh/configure/app/server/public-routes.mdx +2 -2
  241. package/zh/configure/app/server/routes.mdx +2 -2
  242. package/zh/configure/app/server/ssr-by-entries.mdx +3 -3
  243. package/zh/configure/app/server/ssr.mdx +2 -2
  244. package/zh/configure/app/source/alias.mdx +4 -3
  245. package/zh/configure/app/source/compile-js-data-uri.mdx +4 -3
  246. package/zh/configure/app/source/config-dir.mdx +2 -2
  247. package/zh/configure/app/source/define.mdx +4 -3
  248. package/zh/configure/app/source/design-system.mdx +2 -2
  249. package/zh/configure/app/source/disable-default-entries.mdx +2 -2
  250. package/zh/configure/app/source/disable-entry-dirs.mdx +2 -2
  251. package/zh/configure/app/source/enable-async-entry.mdx +2 -2
  252. package/zh/configure/app/source/entries-dir.mdx +2 -2
  253. package/zh/configure/app/source/entries.mdx +2 -2
  254. package/zh/configure/app/source/exclude.mdx +4 -3
  255. package/zh/configure/app/source/global-vars.mdx +4 -3
  256. package/zh/configure/app/source/include.mdx +4 -3
  257. package/zh/configure/app/source/module-scopes.mdx +4 -3
  258. package/zh/configure/app/source/pre-entry.mdx +4 -3
  259. package/zh/configure/app/source/resolve-extension-prefix.mdx +4 -3
  260. package/zh/configure/app/source/resolve-main-fields.mdx +4 -3
  261. package/zh/configure/app/testing/transformer.mdx +2 -2
  262. package/zh/configure/app/tools/autoprefixer.mdx +4 -3
  263. package/zh/configure/app/tools/babel.mdx +4 -3
  264. package/zh/configure/app/tools/css-extract.mdx +4 -3
  265. package/zh/configure/app/tools/css-loader.mdx +4 -3
  266. package/zh/configure/app/tools/dev-server.mdx +4 -3
  267. package/zh/configure/app/tools/esbuild.mdx +2 -2
  268. package/zh/configure/app/tools/html-plugin.mdx +4 -3
  269. package/zh/configure/app/tools/inspector.mdx +4 -3
  270. package/zh/configure/app/tools/jest.mdx +2 -2
  271. package/zh/configure/app/tools/less.mdx +4 -3
  272. package/zh/configure/app/tools/minify-css.mdx +4 -3
  273. package/zh/configure/app/tools/postcss.mdx +4 -3
  274. package/zh/configure/app/tools/pug.mdx +4 -3
  275. package/zh/configure/app/tools/sass.mdx +4 -3
  276. package/zh/configure/app/tools/style-loader.mdx +4 -3
  277. package/zh/configure/app/tools/styled-components.mdx +4 -3
  278. package/zh/configure/app/tools/swc.mdx +2 -2
  279. package/zh/configure/app/tools/tailwindcss.mdx +10 -16
  280. package/zh/configure/app/tools/terser.mdx +4 -3
  281. package/zh/configure/app/tools/ts-checker.mdx +4 -3
  282. package/zh/configure/app/tools/ts-loader.mdx +4 -3
  283. package/zh/configure/app/tools/webpack-chain.mdx +4 -3
  284. package/zh/configure/app/tools/webpack.mdx +4 -3
  285. package/zh/configure/app/usage.mdx +117 -8
  286. package/zh/guides/advanced-features/bff/function.mdx +3 -3
  287. package/zh/guides/advanced-features/code-split.mdx +1 -1
  288. package/zh/guides/advanced-features/compatibility.mdx +1 -1
  289. package/zh/guides/advanced-features/eslint.mdx +3 -3
  290. package/zh/guides/advanced-features/ssr.mdx +3 -3
  291. package/zh/guides/basic-features/alias.mdx +1 -1
  292. package/zh/guides/basic-features/builder.mdx +2 -2
  293. package/zh/guides/basic-features/css/postcss.mdx +1 -1
  294. package/zh/guides/basic-features/html.mdx +1 -1
  295. package/zh/guides/basic-features/routes.mdx +28 -1
  296. package/zh/guides/topic-detail/framework-plugin/hook.mdx +1 -1
  297. package/zh/guides/topic-detail/generator/config/{mwa.mdx → app.mdx} +1 -1
  298. package/zh/guides/topic-detail/generator/config/common.mdx +12 -12
  299. package/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +1 -1
  300. package/zh/guides/topic-detail/generator/plugin/api/new/createElement.mdx +1 -1
  301. package/zh/guides/topic-detail/generator/plugin/api/new/enableFunc.mdx +1 -1
  302. package/zh/guides/topic-detail/generator/plugin/api/new/introduce.mdx +2 -2
  303. package/zh/guides/topic-detail/generator/plugin/develop.mdx +3 -3
  304. package/zh/guides/topic-detail/micro-frontend/c02-development.mdx +128 -61
  305. package/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +71 -40
  306. package/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +1 -1
  307. package/zh/guides/topic-detail/model/auto-actions.mdx +1 -1
  308. package/zh/guides/topic-detail/model/define-model.mdx +1 -1
  309. package/zh/guides/topic-detail/model/manage-effects.mdx +1 -1
  310. package/zh/guides/topic-detail/model/quick-start.mdx +2 -2
  311. package/zh/guides/topic-detail/model/test-model.mdx +1 -1
  312. package/zh/guides/topic-detail/model/use-model.mdx +3 -3
  313. package/zh/guides/topic-detail/monorepo/create-sub-project.mdx +2 -2
  314. package/zh/guides/topic-detail/monorepo/sub-project-interface.mdx +2 -2
  315. package/zh/tutorials/first-app/c02-component.mdx +1 -1
  316. package/zh/tutorials/first-app/c03-css.mdx +3 -3
  317. package/zh/tutorials/first-app/c04-routes.mdx +1 -1
  318. package/zh/tutorials/first-app/c06-model.mdx +1 -1
@@ -53,36 +53,36 @@ scenes 配置只能在 `@modern-js/create` 的 `--config` 参数中使用,不
53
53
 
54
54
  ### noNeedInstall
55
55
 
56
- - Type: `boolean`
57
- - Default: `false`
56
+ - **类型:** `boolean`
57
+ - **默认值:** `false`
58
58
 
59
59
  是否跳过依赖安装。
60
60
 
61
61
  ### noNeedGit
62
62
 
63
- - Type: `boolean`
64
- - Default: `false`
63
+ - **类型:** `boolean`
64
+ - **默认值:** `false`
65
65
 
66
66
  是否跳过 git 初始化和提交初始 commit。
67
67
 
68
68
  ### successInfo
69
69
 
70
- - Type: `string`
71
- - Default: 不同工程方案的命令操作提示
70
+ - **类型:** `string`
71
+ - **默认值:** 不同工程方案的命令操作提示
72
72
 
73
73
  自定义创建项目成功的提示信息。
74
74
 
75
75
  ### isMonorepoSubProject
76
76
 
77
- - Type: `boolean`
78
- - Default: `false`
77
+ - **类型:** `boolean`
78
+ - **默认值:** `false`
79
79
 
80
80
  是否为 Monorepo 子项目。
81
81
 
82
82
  ### isTest
83
83
 
84
- - Type: `boolean`
85
- - Default: `false`
84
+ - **类型:** `boolean`
85
+ - **默认值:** `false`
86
86
 
87
87
  作用于应用项目,标识是否为测试项目。
88
88
 
@@ -91,8 +91,8 @@ scenes 配置只能在 `@modern-js/create` 的 `--config` 参数中使用,不
91
91
 
92
92
  ### isPublic
93
93
 
94
- - Type: `boolean`
95
- - Default: `false`
94
+ - **类型:** `boolean`
95
+ - **默认值:** `false`
96
96
 
97
97
  作用于模块 (Module) 项目,标识是否需要对外发布。
98
98
 
@@ -45,7 +45,7 @@ context.addInputBefore('packageManager', {
45
45
  });
46
46
  ```
47
47
 
48
- :::info 注意事项
48
+ :::info意事项
49
49
 
50
50
  1. 添加问题的 key 不能和 Modern.js 提供的项目类型自身的问题的 key 重复
51
51
 
@@ -30,4 +30,4 @@ export type ForgedAPI = {
30
30
 
31
31
  ## params
32
32
 
33
- 创建元素的其他参数,详细参考[应用 New 命令](/guides/topic-detail/generator/config/mwa#new-命令)。
33
+ 创建元素的其他参数,详细参考[应用 New 命令](/guides/topic-detail/generator/config/app#new-命令)。
@@ -41,4 +41,4 @@ export type ForgedAPI = {
41
41
 
42
42
  ## params
43
43
 
44
- 启用功能时其他参数,详细参考[应用 New 命令](/guides/topic-detail/generator/config/mwa#new-命令)和[模块 New 命令](/guides/topic-detail/generator/config/module#new-命令)。
44
+ 启用功能时其他参数,详细参考[应用 New 命令](/guides/topic-detail/generator/config/app#new-命令)和[模块 New 命令](/guides/topic-detail/generator/config/module#new-命令)。
@@ -6,9 +6,9 @@ sidebar_position: 1
6
6
 
7
7
  Modern.js 提供的三个工程方案支持在项目中执行 new 命令创建元素和开启功能。在生成器插件中可直接调用相关 API 默认创建一些元素和开启支持的功能。
8
8
 
9
- 不同的工程方案支持的 new 操作
9
+ 不同的工程方案支持的 new 操作:
10
10
 
11
- - [应用](/guides/topic-detail/generator/config/mwa#new-命令)
11
+ - [Web 应用](/guides/topic-detail/generator/config/app#new-命令)
12
12
 
13
13
  - [模块](/guides/topic-detail/generator/config/module#new-命令)
14
14
 
@@ -6,7 +6,7 @@ sidebar_position: 3
6
6
 
7
7
  ## 创建项目
8
8
 
9
- Modern.js 提供了创建生成器插件项目的生成器插件用于创建项目,可直接执行以下命令创建:
9
+ Modern.js 提供了生成器插件用于创建开发项目,可直接执行以下命令创建:
10
10
 
11
11
  ```bash
12
12
  npx @modern-js/create plugin --plugin @modern-js/generator-plugin-plugin
@@ -14,7 +14,7 @@ npx @modern-js/create plugin --plugin @modern-js/generator-plugin-plugin
14
14
 
15
15
  插件类型不同,会提问不同的问题,可根据需求选择插件类型
16
16
 
17
- ### 扩展类型
17
+ ### 扩展工程方案
18
18
 
19
19
  ```
20
20
  ? 请选择你想创建的工程类型 模块
@@ -26,7 +26,7 @@ npx @modern-js/create plugin --plugin @modern-js/generator-plugin-plugin
26
26
  ? 插件基础类型 应用
27
27
  ```
28
28
 
29
- ### 自定义类型
29
+ ### 创建工程方案场景
30
30
 
31
31
  ```
32
32
  ? 请选择你想创建的工程类型 模块
@@ -10,19 +10,20 @@ title: 体验微前端
10
10
  - 微前端项目开发的基本流程。
11
11
 
12
12
  ## 创建应用
13
+ 目前支持两种路由模式
14
+ - 自控式路由
15
+ - 约定式路由
13
16
 
14
- 在这次的实践中,我们需要创建三个应用,分别为 1 个主应用,2 个子应用:
17
+ 首先明确主应用的路由模式 [创建约定式路由主应用](#创建约定式路由主应用) [创建自控式路由主应用](#创建自控式路由主应用)
15
18
 
16
- - main 主应用
17
- - dashboard 子应用
18
- - table 子应用
19
+ 在本次体验中我们会为主应用创建两个子应用 Table 和 Dashboard (Table 为约定式路由,Dashboard 为自控式路由)
19
20
 
20
- ### 创建 main 主应用
21
+ ### 创建约定式路由主应用
21
22
 
22
23
  通过命令行工具初始化项目:
23
24
 
24
25
  ```bash
25
- mkdir main && cd main
26
+ mkdir masterApp && cd masterApp
26
27
  npx @modern-js/create
27
28
  ```
28
29
 
@@ -43,16 +44,96 @@ import EnableMicroFrontend from "@site-docs/components/enable-micro-frontend";
43
44
 
44
45
  <EnableMicroFrontend />
45
46
 
46
- import MicroRuntimeConfig from "@site-docs/components/micro-runtime-config";
47
+ 然后我们在 routes 文件夹下新建两个目录
48
+ - table (用于加载约定式路由子应用)
49
+ - dashboard (用于加载自控式路由子应用)
47
50
 
48
- <MicroRuntimeConfig />
51
+ 在这两个目录下我们需要新建一个 `$.tsx` 文件作为主应用约定式路由的入口($ 代表模糊匹配,即 `/table` 和 `/table/test` 都会匹配到这个 `$.tsx` 作为该路由的入口文件,这会保证在微前端场景下正确加载子应用路由)
49
52
 
50
- ### 创建 dashboard 子应用
53
+ #### 加载约定式路由子应用
54
+ ```js title="src/routes/table/$.tsx"
55
+ import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
56
+
57
+ const Index = () => {
58
+ const { Table } = useModuleApps();
59
+
60
+ return (
61
+ <div>
62
+ <Table />
63
+ </div>
64
+ )
65
+ }
66
+
67
+ export default Index;
68
+ ```
69
+
70
+ #### 加载自控式路由子应用
71
+ ```js title="src/routes/dashboard/$.tsx"
72
+ import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
73
+
74
+ const Index = () => {
75
+ const { Dashboard } = useModuleApps();
76
+
77
+ return (
78
+ <div>
79
+ <Dashboard />
80
+ </div>
81
+ )
82
+ }
83
+
84
+ export default Index;
85
+ ```
86
+ #### 路由跳转
87
+ 此时主应用配置已经完成,通过路由即可加载子应用,修改主应用的 `layout.tsx` 来跳转路由
88
+ ```js title="src/route/layout.tsx"
89
+ import { Outlet, Link } from '@modern-js/runtime/router';
90
+
91
+ const Layout = () => (
92
+ <div>
93
+ <div><Link to={'/table'}>加载约定式路由子应用</Link></div>
94
+ <div><Link to={'/dashboard'}>加载自控式路由子应用</Link></div>
95
+ <div><Link to={'/'}>卸载子应用</Link></div>
96
+ <Outlet />
97
+ </div>
98
+ );
99
+
100
+ export default Layout;
101
+ ```
102
+
103
+ ### 创建自控式路由主应用
51
104
 
52
105
  通过命令行工具初始化项目:
53
106
 
54
107
  ```bash
55
- mkdir dashboard && cd dashboard
108
+ mkdir masterApp && cd masterApp
109
+ npx @modern-js/create
110
+ ```
111
+
112
+ <DefaultMWAGenerate />
113
+
114
+ 完成项目创建后我们可以通过 `pnpm run new` 来开启 `微前端` 功能:
115
+
116
+ ```bash
117
+ ? 请选择你想要的操作 启用可选功能
118
+ ? 启用可选功能 启用「微前端」模式
119
+ ```
120
+
121
+ 接下来,让我们注册微前端插件并添加开启微前端主应用,并增加子应用列表:
122
+
123
+ <EnableMicroFrontend />
124
+
125
+ 由于是自控式路由,我们删除掉 `routes` 文件夹并在 `src` 目录下增加 `App.tsx` 文件,此处如果使用的 `非 MApp` 组件,需要通过 `React Router v6` 的 `createBrowserRouter` API 来创建路由
126
+ #### 加载子应用
127
+ import CustomRouterMicroFrontend from "@site-docs/components/custom-router-micro-frontend";
128
+
129
+ <CustomRouterMicroFrontend />
130
+
131
+ ### 创建约定式路由子应用
132
+
133
+ 通过命令行工具初始化项目:
134
+
135
+ ```bash
136
+ mkdir table && cd table
56
137
  npx @modern-js/create
57
138
  ```
58
139
 
@@ -74,6 +155,9 @@ import appTools, { defineConfig } from '@modern-js/app-tools';
74
155
  import garfishPlugin from '@modern-js/plugin-garfish';
75
156
 
76
157
  export default defineConfig({
158
+ dev: {
159
+ port: 8081
160
+ },
77
161
  runtime: {
78
162
  router: true,
79
163
  state: true,
@@ -85,12 +169,23 @@ export default defineConfig({
85
169
  });
86
170
  ```
87
171
 
88
- ### 创建 table 子应用
172
+ 添加 `src/routes/page.tsx` 代码
173
+ ```js title="src/routes/page.tsx"
174
+ const Index = () => {
175
+ return (
176
+ <div className="container-box">subApp: 约定式路由的子应用的根路由</div>
177
+ )
178
+ }
179
+
180
+ export default Index;
181
+ ```
182
+
183
+ ### 创建自控式路由子应用
89
184
 
90
185
  通过命令行工具初始化项目:
91
186
 
92
187
  ```bash
93
- mkdir table && cd table
188
+ mkdir dashboard && cd dashboard
94
189
  npx @modern-js/create
95
190
  ```
96
191
 
@@ -112,6 +207,9 @@ import appTools, { defineConfig } from '@modern-js/app-tools';
112
207
  import garfishPlugin from '@modern-js/plugin-garfish';
113
208
 
114
209
  export default defineConfig({
210
+ dev: {
211
+ port: 8082
212
+ },
115
213
  runtime: {
116
214
  router: true,
117
215
  state: true,
@@ -122,67 +220,36 @@ export default defineConfig({
122
220
  plugins: [appTools(), garfishPlugin()],
123
221
  });
124
222
  ```
223
+ 自控式路由需要删除掉 `routes` 文件夹并在 `src` 目录下新建 `App.tsx`
125
224
 
126
- ## 添加代码
225
+ 并在 `src/App.tsx` 添加代码,注意需要从 `props` 中解析并传递 `basename` 给 `BrowserRouter`
127
226
 
128
- ### main 主应用
227
+ ```js title="src/App.tsx"
228
+ import { BrowserRouter, Route, Routes } from '@modern-js/runtime/router';
129
229
 
130
- 删除 `src/routers` 目录, 创建 `src/App.tsx`,并添加如下内容:
230
+ export default (props: {basename: string}) => {
231
+ const { basename } = props;
131
232
 
132
- ```tsx
133
- import { Link } from '@modern-js/runtime/router';
134
- import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
135
-
136
- const App = () => {
137
- const { DashBoard, TableList } = useModuleApps();
138
233
  return (
139
- <div>
140
- <div>
141
- <Link to="/dashboard">Dashboard</Link> &nbsp;
142
- <Link to="/table">Table</Link>
143
- </div>
144
- <Route path="/dashboard">
145
- <DashBoard />
146
- </Route>
147
- <Route path="/table">
148
- <TableList />
149
- </Route>
150
- </div>
234
+ <BrowserRouter basename={basename}>
235
+ <Routes>
236
+ <Route index element={<div>自控式路由子应用根路由</div>} />
237
+ <Route path={'path'} element={<div>自控式路由子应用子路由</div>} />
238
+ </Routes>
239
+ </BrowserRouter>
151
240
  );
152
241
  };
153
-
154
- export default App;
155
- ```
156
-
157
- ### dashboard 子应用
158
-
159
- 删除 `src/routers` 目录, 创建 `src/App.tsx`,并添加如下内容:
160
-
161
- ```tsx
162
- export default () => <div>Dashboard Page</div>;
163
- ```
164
-
165
- ### table 子应用
166
-
167
- 删除 `src/routers` 目录, 创建 `src/App.tsx`,并添加如下内容:
168
-
169
- ```tsx
170
- export default () => <div>Table Page</div>;
171
242
  ```
172
243
 
173
244
  ## 调试
245
+ 按顺序在目录执行 `pnpm run dev` 命令启动应用:
246
+ - masterApp 主应用 `http://localhost:8080`
247
+ - table 子应用(约定式路由) `http://localhost:8081`
248
+ - dashboard 子应用(自控式路由) `http://localhost:8082`
174
249
 
175
- 按顺序在 `main`、 `dashboard`、 `table` 目录执行 `pnpm run dev` 命令启动应用:
176
-
177
- - main - `http://localhost:8080`
178
- - dashboard - `http://localhost:8081`
179
- - table - `http://localhost:8082`
180
-
181
- 访问主应用地址 `http://localhost:8080`,效果如下:
182
-
183
- ![demo](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/micro-demo.gif)
250
+ 访问主应用地址 `http://localhost:8080`
184
251
 
185
- 在完成了微前端整体开发流程的体验后,你可以进一步了解如何 [开发主应用](./c03-main-app.md)
252
+ 在完成了微前端整体开发流程的体验后,你可以进一步了解如何 [开发主应用](/guides/topic-detail/micro-frontend/c03-main-app)
186
253
 
187
254
  ## 常见问题
188
255
 
@@ -4,7 +4,7 @@ title: 开发主应用
4
4
  ---
5
5
  # 开发主应用
6
6
 
7
- 在上一章 [体验微前端](./c02-development.md) 通过一个示例演示了如何创建和配置微前端子应用,通过本章你可以进一步了解如何开发主应用,以及它的常见配置。
7
+ 在上一章 [体验微前端](/guides/topic-detail/micro-frontend/c02-development.md) 通过一个示例演示了如何创建和配置微前端子应用,通过本章你可以进一步了解如何开发主应用,以及它的常见配置。
8
8
 
9
9
  在通过 `@modern-js/create` 命令创建应用工程后,可以在项目中执行 `pnpm run new`(实际执行了 `modern new` 命令),在选择了「微前端」模式后,会安装微前端依赖依赖,只需手动注册插件即可。
10
10
 
@@ -40,16 +40,15 @@ defineConfig(App, {
40
40
  manifest: {
41
41
  getAppList: async () => {
42
42
  // 可以从其他远程接口获取
43
- return [
44
- {
45
- name: 'DashBoard',
46
- entry: 'http://127.0.0.1:8081/',
47
- },
48
- {
49
- name: 'TableList',
50
- entry: 'http://localhost:8082',
51
- },
52
- ];
43
+ return [{
44
+ name: 'SubConvention',
45
+ entry: 'http://localhost:3002',
46
+ // activeWhen: '/SubConvention'
47
+ }, {
48
+ name: 'SubCustom',
49
+ entry: 'http://localhost:3003'
50
+ // activeWhen: '/SubConvention'
51
+ }];
53
52
  },
54
53
  },
55
54
  },
@@ -75,39 +74,71 @@ defineConfig(App, {
75
74
 
76
75
  编辑主应用 `App.tsx` 文件如下:
77
76
 
78
- ```tsx title=主应用:App.tsx
77
+ ```js title="App.tsx"
79
78
  import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
80
- import { Route, Switch } from '@modern-js/runtime/router';
81
79
 
82
- function App() {
83
- const { DashBoard, TableList } = useModuleApps();
80
+ import { RouterProvider, Route, createBrowserRouter, createRoutesFromElements, BrowserRouter, Link, Outlet } from '@modern-js/runtime/router';
84
81
 
85
- return (
86
- <div>
87
- <Route path="/dashboard">
88
- <DashBoard
89
- loadable={{
90
- loading: ({ pastDelay, error }: any) => {
91
- if (error) {
92
- return <div>error: {error?.message}</div>;
93
- } else if (pastDelay) {
94
- return <div>loading</div>;
95
- } else {
96
- return null;
82
+ const AppLayout = () => (
83
+ <>
84
+ <div><Link to={'/SubConvention'}>加载约定式路由子应用</Link></div>
85
+ <div><Link to={'/SubCustom'}>加载自控式路由子应用</Link></div>
86
+ <div><Link to={'/'}>卸载子应用</Link></div>
87
+ <Outlet />
88
+ </>
89
+ )
90
+
91
+ export default () => {
92
+ const { apps, MApp } = useModuleApps();
93
+
94
+ // 使用的不是 MApp 组件,需要使用 createBrowserRouter 来创建路由
95
+ const router = createBrowserRouter(
96
+ createRoutesFromElements(
97
+ <Route path="/" element={<AppLayout />}>
98
+ {apps.map(app => {
99
+ const { Component } = app;
100
+ // 模糊匹配,path 需要写成类似 abc/* 的模式
101
+ return (
102
+ <Route
103
+ key={app.name}
104
+ path={`${app.name}/*`}
105
+ element={
106
+ <Component
107
+ loadable={{
108
+ loading: ({ pastDelay, error }: any) => {
109
+ if (error) {
110
+ return <div>error: {error?.message}</div>;
111
+ } else if (pastDelay) {
112
+ return <div>loading</div>;
113
+ } else {
114
+ return null;
115
+ }
116
+ },
117
+ }}
118
+ />
97
119
  }
98
- },
99
- }}
100
- />
101
- </Route>
102
- <Route path="/table">
103
- <TableList />
120
+ />
121
+ )
122
+ })}
104
123
  </Route>
105
- </div>
124
+ )
106
125
  );
107
- }
126
+
127
+ return (
128
+ // 方法一:使用 MApp 自动根据配置的 activeWhen 参数加载子应用(本项目配置在 modern.config.ts 中)
129
+ // <BrowserRouter>
130
+ // <MApp />
131
+ // </BrowserRouter>
132
+
133
+ // 方法二:手动写 Route 组件方式加载子应用,方便于需要鉴权等需要前置操作的场景
134
+ <>
135
+ <RouterProvider router={router} />
136
+ </>
137
+ );
138
+ };
108
139
  ```
109
140
 
110
- 这里通过 `Route` 组件自定义了 **DashBoard** 的激活路由为 **/dashboard**, **TableList** 的激活路由为 **/table**。
141
+ 这里通过 `Route` 组件自定义了 **SubConvention** 的激活路由为 **/SubConvention**, **SubCustom** 的激活路由为 **/SubCustom**。
111
142
 
112
143
  ### 集中式路由
113
144
 
@@ -131,7 +162,7 @@ function App() {
131
162
  }
132
163
  ```
133
164
 
134
- 这样启动应用后,访问 `/dashboard` 路由,会渲染 `Dashboard` 子应用,访问 `/table` 路由,会渲染 `TableList` 子应用。
165
+ 这样启动应用后,访问 `/SubCustom` 路由,会渲染 `SubCustom` 子应用,访问 `/SubConvention` 路由,会渲染 `SubConvention` 子应用。
135
166
 
136
167
  ### 两种模式混用
137
168
 
@@ -151,7 +182,7 @@ function Loading() {
151
182
 
152
183
  function App(){
153
184
  return <>
154
- <DashBoard
185
+ <SubCustom
155
186
  loadable={{
156
187
  loading: Loading,
157
188
  }}
@@ -198,7 +229,7 @@ function Loading({ error, pastDelay }) {
198
229
 
199
230
  function App(){
200
231
  return <>
201
- <DashBoard
232
+ <SubCustom
202
233
  loadable={{
203
234
  loading: Loading,
204
235
  delay: 300 // 0.3 seconds
@@ -234,7 +265,7 @@ function Loading({ error, timeOut, pastDelay }) {
234
265
 
235
266
  function App(){
236
267
  return <>
237
- <DashBoard
268
+ <SubCustom
238
269
  loadable={{
239
270
  loading: Loading,
240
271
  timeOut: 10000 // 10s
@@ -16,7 +16,7 @@ Modern.js 微前端方案是基于 [Garfish](https://garfishjs.org/) 封装的
16
16
  **Modern.js** 子应用编译后会生成标准的 [Garfish 子应用导出](https://www.garfishjs.org/guide/start#2%E5%AF%BC%E5%87%BA-provider-%E5%87%BD%E6%95%B0)。
17
17
  所以可以直接接入标准的微前端主应用。
18
18
 
19
- :::info
19
+ :::info
20
20
  子应用是 **Modern.js**,主应用使用的原生 Garfish 微前端时,**子应用调试模式** 不可用。
21
21
 
22
22
  :::
@@ -80,7 +80,7 @@ function Counter() {
80
80
 
81
81
  根据 `a`、`b`、`c` 三个不同的字段分别生成 `setA`、`setB`、`setC` 三个 Actions。
82
82
 
83
- :::info
83
+ :::info
84
84
  当用户自定义的 Action 和 Modern.js 自动生成的 Action 名字一致时,用户自定义的 Action 优先级更高。例如,
85
85
  在 `countModel` 中已经自定义 `setA` 这个 Action,调用 `actions.setA()` 时,最终执行的是用户自定义的 `setA`。
86
86
 
@@ -23,7 +23,7 @@ const fooModel = model('foo').define({
23
23
  });
24
24
  ```
25
25
 
26
- :::info
26
+ :::info
27
27
  - Model 中的 Action 中不能包含有副作用的逻辑,如请求 HTTP 接口,访问 localStorage 等。
28
28
  - `setValue` 内部直接修改了入参 State,看起来是违反了纯函数的定义,实际上 Reduck 内部使用 [immer](https://github.com/immerjs/immer) 来修改不可变对象,保证了这种写法不会影响对象的不可变性,所以 `setValue` 仍然是一个纯函数。当然,你也可以直接在 Action 中返回一个新对象,不过这样的写法会更加复杂一些。
29
29
 
@@ -187,7 +187,7 @@ const todoModel = model('todo').define((context, utils) => ({
187
187
  }));
188
188
  ```
189
189
 
190
- :::info
190
+ :::info
191
191
  可以使用 `use` 函数加载其它 Model(包括 Model 自身),实现 [Model 间通信](/guides/topic-detail/model/model-communicate)。
192
192
 
193
193
  :::
@@ -16,7 +16,7 @@ Reduck 在 MVC 模式中,扮演 M(Model) 的角色,React UI Component 对应
16
16
 
17
17
  Modern.js 的状态管理解决方案,是通过内置 Reduck 实现的。在 Modern.js 中使用 Reduck,不仅免去了手动集成的环节,而且所有 Reduck API 都可以从 Modern.js 的 Runtime 包中直接导入使用,具有更好的一致性体验。
18
18
 
19
- :::info
19
+ :::info
20
20
  1. Modern.js 中使用 Reduck API,需要先设置 [runtime.state](/configure/app/runtime/state) 以启用状态管理插件。
21
21
  2. Reduck 也可以脱离 Modern.js 作为状态管理库[单独使用](/guides/topic-detail/model/use-out-of-modernjs)。
22
22
 
@@ -101,7 +101,7 @@ function Counter() {
101
101
 
102
102
  `useModel` 获取 `countModel` 的 `state` 和 `actions`,组件展示当前计算器的值,点击 `add` 按钮,计数器自增 1。
103
103
 
104
- :::info
104
+ :::info
105
105
  由于使用的案例比较简单,这里并没有严格按照 MVC 模式进行分层,组件 `Counter` 同时起到了 V 和 C 两层的作用。
106
106
 
107
107
  :::
@@ -35,7 +35,7 @@ describe('test model', () => {
35
35
  });
36
36
  ```
37
37
 
38
- :::info
38
+ :::info
39
39
  这里使用的 [`createStore`](/apis/app/runtime/model/create-store) 是从 `@modern-js/runtime/testing` 导入的,内部会使用 [`runtime.state`](/configure/app/runtime/state) 的配置去创建 `store`。
40
40
 
41
41
  :::
@@ -111,7 +111,7 @@ const [state, actions] = useModel(
111
111
 
112
112
  通过 `useStaticModel` 获取 Model ,将 Model 中的状态作为静态状态使用。可以保证组件每次访问到的 Model 的 State 都是最新值,但是 Model 的 State 的变化,并不会引起当前组件的重新渲染。
113
113
 
114
- :::info
114
+ :::info
115
115
  `useStaticModel` 的使用方式和 `useModel` 完全一致。
116
116
 
117
117
  :::
@@ -169,7 +169,7 @@ function ThreeComponent() {
169
169
 
170
170
  通过 `useLocalModel` 获取 Model ,将 Model 中的状态作为局部状态使用。此时 Model State 的变化,只会引起当前组件的重新渲染,但是不会引起其他使用了该 Model 的组件重新渲染。效果和通过 React 的 `useState` 管理状态类似,但是可以将状态的管理逻辑从组件中解耦,统一收敛到 Model 层。
171
171
 
172
- :::info
172
+ :::info
173
173
  `useLocalModel` 的使用方式和 `useModel` 完全一致。
174
174
 
175
175
  :::
@@ -241,7 +241,7 @@ setInterval(() => {
241
241
 
242
242
  完整的示例代码可以在[这里](https://github.com/modern-js-dev/modern-js-examples/tree/main/series/tutorials/runtime-api/model/counter-model-outof-react)查看。
243
243
 
244
- :::info
244
+ :::info
245
245
  如果是通过 [`createStore`](/apis/app/runtime/model/create-store) 手动创建的 Store 对象,无需通过 `useStore` 在组件内获取,即可直接使用。
246
246
 
247
247
  :::
@@ -34,12 +34,12 @@ pnpm run new
34
34
  模块(内部)
35
35
  ```
36
36
 
37
- :::info
37
+ :::info
38
38
  「应用」与「应用(测试)」都是「应用」类型的项目,区别是「应用」类型的子项目会创建在 `./apps` 目录下,而 「应用(测试)」类型的子项目会创建在 `./examples` 目录下。
39
39
 
40
40
  :::
41
41
 
42
- :::info
42
+ :::info
43
43
  「模块」与「模块(内部)」都是「模块」类型的项目,区别之一是「模块」类型的子项目会创建在 `./packages` 目录下,而「模块(内部)」类型的子项目会创建在 `./features` 目录下。
44
44
 
45
45
  对于「模块」类型的子项目允许被发布到外部(例如 npm),而对于「模块(内部)」的子项目则可以在应用项目中直接使用其源码(该特性是「模块」项目不具备的,应用项目对于「模块(内部)」子项目做了特殊处理),因此这类子项目不需要发布到外部。