@modern-js/main-doc 2.69.4 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/docs/en/{_meta.json → _nav.json} +5 -1
  2. package/docs/en/apis/app/commands.mdx +2 -3
  3. package/docs/en/apis/app/hooks/src/entry.mdx +1 -5
  4. package/docs/en/apis/app/hooks/src/entry.server.mdx +4 -5
  5. package/docs/en/apis/app/hooks/src/routes.mdx +2 -2
  6. package/docs/en/apis/app/runtime/_meta.json +0 -18
  7. package/docs/en/apis/app/runtime/bff/use-hono-context.mdx +2 -2
  8. package/docs/en/apis/app/runtime/router/router.mdx +1 -1
  9. package/docs/en/apis/app/runtime/utility/css-in-js.mdx +3 -2
  10. package/docs/en/community/blog/v2-release-note.mdx +0 -2
  11. package/docs/en/community/contributing-guide.mdx +10 -12
  12. package/docs/en/components/bff-upload.mdx +16 -12
  13. package/docs/en/components/build-output.mdx +45 -0
  14. package/docs/en/components/debug-app.mdx +1 -1
  15. package/docs/en/components/enable-bff-caution.mdx +2 -2
  16. package/docs/en/components/enable-bff.mdx +38 -8
  17. package/docs/en/components/enable-ssg.mdx +48 -0
  18. package/docs/en/components/entry-scan-logic.mdx +7 -0
  19. package/docs/en/components/init-app.mdx +40 -17
  20. package/docs/en/components/international/install-command.mdx +9 -0
  21. package/docs/en/components/international/introduce.mdx +2 -0
  22. package/docs/en/components/module-federation.mdx +4 -4
  23. package/docs/en/components/new-entry-tooltip.mdx +0 -0
  24. package/docs/en/components/nodeVersion.mdx +2 -6
  25. package/docs/en/components/prerequisites.mdx +1 -1
  26. package/docs/en/components/ua-polyfill.mdx +16 -12
  27. package/docs/en/components/upgrade-browserslist.mdx +0 -0
  28. package/docs/en/configure/_meta.json +7 -8
  29. package/docs/en/configure/app/bff/cross-project.mdx +24 -0
  30. package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
  31. package/docs/en/configure/app/dev/server.mdx +103 -0
  32. package/docs/en/configure/app/dev/setup-middlewares.mdx +4 -22
  33. package/docs/en/configure/app/html/app-icon.mdx +1 -23
  34. package/docs/en/configure/app/output/inline-scripts.mdx +1 -1
  35. package/docs/en/configure/app/output/override-browserslist.mdx +6 -4
  36. package/docs/en/configure/app/output/source-map.mdx +6 -3
  37. package/docs/en/configure/app/output/ssg.mdx +12 -43
  38. package/docs/en/configure/app/output/ssgByEntries.mdx +93 -0
  39. package/docs/en/configure/app/performance/build-cache.mdx +0 -4
  40. package/docs/en/configure/app/resolve/alias-strategy.mdx +14 -0
  41. package/docs/en/configure/app/resolve/alias.mdx +13 -0
  42. package/docs/en/configure/app/resolve/condition-names.mdx +18 -0
  43. package/docs/en/configure/app/resolve/dedupe.mdx +13 -0
  44. package/docs/en/configure/app/resolve/extensions.mdx +18 -0
  45. package/docs/en/configure/app/runtime/0-intro.mdx +2 -51
  46. package/docs/en/configure/app/security/check-syntax.mdx +1 -1
  47. package/docs/en/configure/app/server/port.mdx +1 -21
  48. package/docs/en/configure/app/server/rsc.mdx +30 -0
  49. package/docs/en/configure/app/server/ssr.mdx +20 -9
  50. package/docs/en/configure/app/source/decorators.mdx +4 -2
  51. package/docs/en/configure/app/source/entries.mdx +0 -2
  52. package/docs/en/configure/app/source/main-entry-name.mdx +4 -4
  53. package/docs/en/configure/app/source/transform-import.mdx +1 -59
  54. package/docs/en/configure/app/tools/bundler-chain.mdx +5 -5
  55. package/docs/en/configure/app/tools/css-extract.mdx +1 -1
  56. package/docs/en/configure/app/tools/dev-server.mdx +14 -248
  57. package/docs/en/configure/app/tools/html-plugin.mdx +3 -3
  58. package/docs/en/configure/app/tools/lightningcss-loader.mdx +0 -1
  59. package/docs/en/configure/app/tools/swc.mdx +1 -43
  60. package/docs/en/configure/app/usage.mdx +7 -17
  61. package/docs/en/guides/_meta.json +1 -2
  62. package/docs/en/guides/advanced-features/_meta.json +6 -0
  63. package/docs/en/guides/advanced-features/bff/cross-project.mdx +1 -7
  64. package/docs/en/guides/advanced-features/bff/extend-server.mdx +18 -3
  65. package/docs/en/guides/advanced-features/bff/frameworks.mdx +1 -1
  66. package/docs/en/guides/advanced-features/bff/function.mdx +2 -6
  67. package/docs/en/guides/advanced-features/bff/sdk.mdx +3 -3
  68. package/docs/en/guides/advanced-features/build-performance.mdx +23 -26
  69. package/docs/en/guides/advanced-features/compatibility.mdx +53 -9
  70. package/docs/en/guides/advanced-features/international/_meta.json +11 -0
  71. package/docs/en/guides/advanced-features/international/advanced.mdx +193 -0
  72. package/docs/en/guides/advanced-features/international/api.mdx +400 -0
  73. package/docs/en/guides/advanced-features/international/basic.mdx +417 -0
  74. package/docs/en/guides/advanced-features/international/best-practices.mdx +135 -0
  75. package/docs/en/guides/advanced-features/international/configuration.mdx +437 -0
  76. package/docs/en/guides/advanced-features/international/locale-detection.mdx +276 -0
  77. package/docs/en/guides/advanced-features/international/quick-start.mdx +154 -0
  78. package/docs/en/guides/advanced-features/international/resource-loading.mdx +417 -0
  79. package/docs/en/guides/advanced-features/international/routing.mdx +212 -0
  80. package/docs/en/guides/advanced-features/international.mdx +37 -0
  81. package/docs/en/guides/advanced-features/low-level.mdx +21 -16
  82. package/docs/en/guides/advanced-features/page-performance/code-split.mdx +4 -4
  83. package/docs/en/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
  84. package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +7 -21
  85. package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +1 -8
  86. package/docs/en/guides/advanced-features/rspack-start.mdx +2 -22
  87. package/docs/en/guides/advanced-features/server-monitor/logger.mdx +0 -4
  88. package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +62 -34
  89. package/docs/en/guides/advanced-features/web-server.mdx +82 -299
  90. package/docs/en/guides/basic-features/_meta.json +6 -1
  91. package/docs/en/guides/basic-features/css/css-in-js.mdx +46 -11
  92. package/docs/en/guides/basic-features/css/css-modules.mdx +5 -17
  93. package/docs/en/guides/basic-features/css/css.mdx +3 -3
  94. package/docs/en/guides/basic-features/css/tailwindcss.mdx +5 -89
  95. package/docs/en/guides/basic-features/data/data-cache.mdx +5 -1
  96. package/docs/en/guides/basic-features/data/data-fetch.mdx +4 -4
  97. package/docs/en/guides/basic-features/data/data-write.mdx +2 -2
  98. package/docs/en/guides/basic-features/debug/mock.mdx +4 -1
  99. package/docs/en/guides/basic-features/debug/proxy.mdx +0 -8
  100. package/docs/en/guides/basic-features/debug/rsdoctor.mdx +5 -5
  101. package/docs/en/guides/basic-features/deploy.mdx +25 -18
  102. package/docs/en/guides/basic-features/env-vars.mdx +1 -1
  103. package/docs/en/guides/basic-features/html.mdx +1 -1
  104. package/docs/en/guides/basic-features/output-files.mdx +3 -3
  105. package/docs/en/guides/basic-features/render/_meta.json +1 -1
  106. package/docs/en/guides/basic-features/render/before-render.mdx +16 -23
  107. package/docs/en/guides/basic-features/render/overview.mdx +51 -0
  108. package/docs/en/guides/basic-features/render/rsc.mdx +394 -0
  109. package/docs/en/guides/basic-features/render/ssg.mdx +26 -62
  110. package/docs/en/guides/basic-features/render/ssr-cache.mdx +6 -6
  111. package/docs/en/guides/basic-features/render/ssr.mdx +31 -31
  112. package/docs/en/guides/basic-features/render/streaming-ssr.mdx +29 -9
  113. package/docs/en/guides/basic-features/routes/_meta.json +1 -0
  114. package/docs/en/guides/basic-features/routes/config-routes.mdx +427 -0
  115. package/docs/en/guides/basic-features/{routes.mdx → routes/routes.mdx} +7 -110
  116. package/docs/en/guides/basic-features/static-assets/json-files.mdx +21 -3
  117. package/docs/en/guides/basic-features/static-assets.mdx +2 -2
  118. package/docs/en/guides/concept/builder.mdx +24 -9
  119. package/docs/en/guides/concept/entries.mdx +139 -147
  120. package/docs/en/guides/get-started/glossary.mdx +0 -18
  121. package/docs/en/guides/get-started/introduction.mdx +1 -4
  122. package/docs/en/guides/get-started/quick-start.mdx +8 -73
  123. package/docs/en/guides/get-started/tech-stack.mdx +7 -25
  124. package/docs/en/guides/get-started/upgrade.mdx +30 -23
  125. package/docs/en/guides/topic-detail/_meta.json +0 -12
  126. package/docs/en/guides/topic-detail/module-federation/_meta.json +1 -1
  127. package/docs/en/guides/topic-detail/module-federation/application.mdx +16 -15
  128. package/docs/en/guides/topic-detail/module-federation/i18n.mdx +670 -0
  129. package/docs/en/guides/topic-detail/module-federation/introduce.mdx +5 -4
  130. package/docs/en/guides/topic-detail/module-federation/ssr.mdx +50 -2
  131. package/docs/en/guides/topic-detail/module-federation/usage.mdx +10 -30
  132. package/docs/en/guides/troubleshooting/builder.mdx +3 -82
  133. package/docs/en/guides/troubleshooting/cli.mdx +6 -30
  134. package/docs/en/guides/troubleshooting/dependencies.mdx +22 -22
  135. package/docs/en/plugin/cli-plugins/api.mdx +4 -5
  136. package/docs/en/plugin/cli-plugins/migration.mdx +33 -48
  137. package/docs/en/plugin/introduction.mdx +39 -27
  138. package/docs/en/plugin/official/_meta.json +0 -5
  139. package/docs/en/plugin/official/cli-plugins/_meta.json +1 -1
  140. package/docs/en/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  141. package/docs/en/plugin/official/cli-plugins.mdx +0 -2
  142. package/docs/en/plugin/plugin-system.mdx +68 -61
  143. package/docs/en/plugin/runtime-plugins/api.mdx +62 -59
  144. package/docs/en/plugin/runtime-plugins/migration.mdx +29 -20
  145. package/docs/en/tutorials/_meta.json +0 -10
  146. package/docs/en/tutorials/examples/csr-auth.mdx +1 -1
  147. package/docs/en/tutorials/foundations/introduction.mdx +9 -25
  148. package/docs/zh/{_meta.json → _nav.json} +10 -6
  149. package/docs/zh/apis/app/commands.mdx +2 -3
  150. package/docs/zh/apis/app/hooks/src/entry.mdx +1 -5
  151. package/docs/zh/apis/app/hooks/src/entry.server.mdx +4 -5
  152. package/docs/zh/apis/app/hooks/src/routes.mdx +2 -2
  153. package/docs/zh/apis/app/runtime/_meta.json +0 -18
  154. package/docs/zh/apis/app/runtime/bff/use-hono-context.mdx +2 -2
  155. package/docs/zh/apis/app/runtime/utility/css-in-js.mdx +3 -2
  156. package/docs/zh/community/blog/v2-release-note.mdx +0 -2
  157. package/docs/zh/community/contributing-guide.mdx +10 -12
  158. package/docs/zh/components/auto-upgrade.mdx +0 -0
  159. package/docs/zh/components/bff-upload.mdx +8 -5
  160. package/docs/zh/components/build-output.mdx +45 -0
  161. package/docs/zh/components/debug-app.mdx +1 -1
  162. package/docs/zh/components/enable-bff-caution.mdx +1 -1
  163. package/docs/zh/components/enable-bff.mdx +37 -8
  164. package/docs/zh/components/enable-ssg.mdx +47 -0
  165. package/docs/zh/components/entry-scan-logic.mdx +7 -0
  166. package/docs/zh/components/init-app.mdx +40 -18
  167. package/docs/zh/components/international/install-command.mdx +8 -0
  168. package/docs/zh/components/international/introduce.mdx +2 -0
  169. package/docs/zh/components/international/platform-support.mdx +0 -0
  170. package/docs/zh/components/module-federation.mdx +4 -4
  171. package/docs/zh/components/new-entry-tooltip.mdx +0 -0
  172. package/docs/zh/components/nodeVersion.mdx +3 -7
  173. package/docs/zh/components/prerequisites.mdx +1 -1
  174. package/docs/zh/components/self-route-example.mdx +3 -3
  175. package/docs/zh/components/ua-polyfill.mdx +11 -6
  176. package/docs/zh/components/upgrade-browserslist.mdx +0 -0
  177. package/docs/zh/configure/_meta.json +7 -8
  178. package/docs/zh/configure/app/bff/cross-project.mdx +24 -0
  179. package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
  180. package/docs/zh/configure/app/dev/server.mdx +104 -0
  181. package/docs/zh/configure/app/dev/setup-middlewares.mdx +4 -23
  182. package/docs/zh/configure/app/html/app-icon.mdx +1 -23
  183. package/docs/zh/configure/app/output/inline-scripts.mdx +1 -1
  184. package/docs/zh/configure/app/output/override-browserslist.mdx +3 -3
  185. package/docs/zh/configure/app/output/source-map.mdx +10 -3
  186. package/docs/zh/configure/app/output/ssg.mdx +13 -45
  187. package/docs/zh/configure/app/output/ssgByEntries.mdx +94 -0
  188. package/docs/zh/configure/app/performance/build-cache.mdx +0 -4
  189. package/docs/zh/configure/app/resolve/alias-strategy.mdx +14 -0
  190. package/docs/zh/configure/app/resolve/alias.mdx +13 -0
  191. package/docs/zh/configure/app/resolve/condition-names.mdx +18 -0
  192. package/docs/zh/configure/app/resolve/dedupe.mdx +14 -0
  193. package/docs/zh/configure/app/resolve/extensions.mdx +18 -0
  194. package/docs/zh/configure/app/runtime/0-intro.mdx +2 -53
  195. package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
  196. package/docs/zh/configure/app/server/port.mdx +2 -21
  197. package/docs/zh/configure/app/server/rsc.mdx +30 -0
  198. package/docs/zh/configure/app/server/ssr.mdx +21 -11
  199. package/docs/zh/configure/app/source/decorators.mdx +4 -4
  200. package/docs/zh/configure/app/source/entries.mdx +0 -2
  201. package/docs/zh/configure/app/source/main-entry-name.mdx +4 -4
  202. package/docs/zh/configure/app/source/transform-import.mdx +1 -59
  203. package/docs/zh/configure/app/tools/bundler-chain.mdx +6 -6
  204. package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
  205. package/docs/zh/configure/app/tools/dev-server.mdx +14 -248
  206. package/docs/zh/configure/app/tools/html-plugin.mdx +3 -2
  207. package/docs/zh/configure/app/tools/lightningcss-loader.mdx +0 -1
  208. package/docs/zh/configure/app/tools/swc.mdx +1 -43
  209. package/docs/zh/configure/app/usage.mdx +8 -18
  210. package/docs/zh/guides/_meta.json +5 -1
  211. package/docs/zh/guides/advanced-features/_meta.json +6 -1
  212. package/docs/zh/guides/advanced-features/bff/cross-project.mdx +8 -16
  213. package/docs/zh/guides/advanced-features/bff/extend-server.mdx +25 -8
  214. package/docs/zh/guides/advanced-features/bff/frameworks.mdx +1 -1
  215. package/docs/zh/guides/advanced-features/bff/function.mdx +7 -12
  216. package/docs/zh/guides/advanced-features/bff/sdk.mdx +4 -4
  217. package/docs/zh/guides/advanced-features/build-performance.mdx +23 -30
  218. package/docs/zh/guides/advanced-features/compatibility.mdx +44 -0
  219. package/docs/zh/guides/advanced-features/international/_meta.json +11 -0
  220. package/docs/zh/guides/advanced-features/international/advanced.mdx +193 -0
  221. package/docs/zh/guides/advanced-features/international/api.mdx +400 -0
  222. package/docs/zh/guides/advanced-features/international/basic.mdx +416 -0
  223. package/docs/zh/guides/advanced-features/international/best-practices.mdx +135 -0
  224. package/docs/zh/guides/advanced-features/international/configuration.mdx +441 -0
  225. package/docs/zh/guides/advanced-features/international/locale-detection.mdx +304 -0
  226. package/docs/zh/guides/advanced-features/international/quick-start.mdx +149 -0
  227. package/docs/zh/guides/advanced-features/international/resource-loading.mdx +417 -0
  228. package/docs/zh/guides/advanced-features/international/routing.mdx +212 -0
  229. package/docs/zh/guides/advanced-features/international.mdx +36 -0
  230. package/docs/zh/guides/advanced-features/low-level.mdx +21 -16
  231. package/docs/zh/guides/advanced-features/page-performance/code-split.mdx +3 -3
  232. package/docs/zh/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
  233. package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +7 -21
  234. package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +1 -8
  235. package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +0 -4
  236. package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +63 -35
  237. package/docs/zh/guides/advanced-features/web-server.mdx +79 -300
  238. package/docs/zh/guides/basic-features/_meta.json +6 -1
  239. package/docs/zh/guides/basic-features/css/css-in-js.mdx +40 -5
  240. package/docs/zh/guides/basic-features/css/css-modules.mdx +6 -17
  241. package/docs/zh/guides/basic-features/css/css.mdx +2 -2
  242. package/docs/zh/guides/basic-features/css/tailwindcss.mdx +6 -90
  243. package/docs/zh/guides/basic-features/data/data-cache.mdx +8 -5
  244. package/docs/zh/guides/basic-features/data/data-fetch.mdx +6 -5
  245. package/docs/zh/guides/basic-features/data/data-write.mdx +4 -4
  246. package/docs/zh/guides/basic-features/debug/mock.mdx +4 -1
  247. package/docs/zh/guides/basic-features/debug/proxy.mdx +0 -8
  248. package/docs/zh/guides/basic-features/debug/rsdoctor.mdx +6 -6
  249. package/docs/zh/guides/basic-features/deploy.mdx +24 -20
  250. package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
  251. package/docs/zh/guides/basic-features/html.mdx +2 -2
  252. package/docs/zh/guides/basic-features/output-files.mdx +3 -3
  253. package/docs/zh/guides/basic-features/render/_meta.json +1 -1
  254. package/docs/zh/guides/basic-features/render/before-render.mdx +17 -24
  255. package/docs/zh/guides/basic-features/render/overview.mdx +52 -0
  256. package/docs/zh/guides/basic-features/render/rsc.mdx +413 -0
  257. package/docs/zh/guides/basic-features/render/ssg.mdx +27 -69
  258. package/docs/zh/guides/basic-features/render/ssr-cache.mdx +5 -5
  259. package/docs/zh/guides/basic-features/render/ssr.mdx +34 -31
  260. package/docs/zh/guides/basic-features/render/streaming-ssr.mdx +34 -14
  261. package/docs/zh/guides/basic-features/routes/_meta.json +1 -0
  262. package/docs/zh/guides/basic-features/routes/config-routes.mdx +426 -0
  263. package/docs/zh/guides/basic-features/{routes.mdx → routes/routes.mdx} +8 -114
  264. package/docs/zh/guides/basic-features/static-assets/json-files.mdx +21 -3
  265. package/docs/zh/guides/basic-features/static-assets.mdx +2 -2
  266. package/docs/zh/guides/basic-features/testing/cypress.mdx +5 -5
  267. package/docs/zh/guides/basic-features/testing/jest.mdx +12 -12
  268. package/docs/zh/guides/concept/builder.mdx +24 -9
  269. package/docs/zh/guides/concept/entries.mdx +95 -92
  270. package/docs/zh/guides/get-started/glossary.mdx +0 -18
  271. package/docs/zh/guides/get-started/introduction.mdx +1 -5
  272. package/docs/zh/guides/get-started/quick-start.mdx +5 -72
  273. package/docs/zh/guides/get-started/tech-stack.mdx +8 -26
  274. package/docs/zh/guides/get-started/upgrade.mdx +30 -23
  275. package/docs/zh/guides/topic-detail/_meta.json +0 -12
  276. package/docs/zh/guides/topic-detail/module-federation/_meta.json +1 -1
  277. package/docs/zh/guides/topic-detail/module-federation/application.mdx +18 -16
  278. package/docs/zh/guides/topic-detail/module-federation/i18n.mdx +623 -0
  279. package/docs/zh/guides/topic-detail/module-federation/introduce.mdx +4 -4
  280. package/docs/zh/guides/topic-detail/module-federation/ssr.mdx +51 -5
  281. package/docs/zh/guides/topic-detail/module-federation/usage.mdx +11 -32
  282. package/docs/zh/guides/troubleshooting/builder.mdx +3 -84
  283. package/docs/zh/guides/troubleshooting/cli.mdx +6 -30
  284. package/docs/zh/guides/troubleshooting/dependencies.mdx +23 -23
  285. package/docs/zh/guides/upgrade/_meta.json +1 -0
  286. package/docs/zh/guides/upgrade/config.mdx +809 -0
  287. package/docs/zh/guides/upgrade/entry.mdx +463 -0
  288. package/docs/zh/guides/upgrade/other.md +90 -0
  289. package/docs/zh/guides/upgrade/overview.mdx +36 -0
  290. package/docs/zh/guides/upgrade/tailwindcss.mdx +130 -0
  291. package/docs/zh/guides/upgrade/web-server.md +93 -0
  292. package/docs/zh/plugin/cli-plugins/api.mdx +4 -5
  293. package/docs/zh/plugin/cli-plugins/migration.mdx +30 -45
  294. package/docs/zh/plugin/introduction.mdx +36 -24
  295. package/docs/zh/plugin/official/_meta.json +0 -5
  296. package/docs/zh/plugin/official/cli-plugins/_meta.json +1 -1
  297. package/docs/zh/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  298. package/docs/zh/plugin/official/cli-plugins.mdx +0 -2
  299. package/docs/zh/plugin/plugin-system.mdx +45 -42
  300. package/docs/zh/plugin/runtime-plugins/api.mdx +58 -56
  301. package/docs/zh/plugin/runtime-plugins/migration.mdx +26 -17
  302. package/docs/zh/tutorials/_meta.json +0 -10
  303. package/docs/zh/tutorials/examples/csr-auth.mdx +1 -1
  304. package/docs/zh/tutorials/foundations/introduction.mdx +8 -25
  305. package/i18n.json +0 -16
  306. package/package.json +12 -12
  307. package/rspress.config.ts +5 -8
  308. package/src/components/ContentCard/index.module.scss +11 -7
  309. package/src/components/ContentCard/index.tsx +1 -1
  310. package/src/components/FeatureLayout/index.module.css +1 -1
  311. package/src/components/Footer/index.tsx +2 -14
  312. package/src/components/Footer/styles.module.scss +5 -5
  313. package/src/components/ListCard/index.tsx +1 -1
  314. package/src/components/RandomMemberList/index.tsx +1 -1
  315. package/src/components/RsbuildLink/index.tsx +1 -1
  316. package/src/components/Sandpack/index.tsx +1 -1
  317. package/src/custom.scss +15 -0
  318. package/src/i18n/enUS.ts +2 -4
  319. package/src/i18n/index.ts +1 -1
  320. package/src/i18n/zhCN.ts +2 -4
  321. package/src/index.ts +2 -1
  322. package/src/pages/index.module.scss +59 -41
  323. package/src/pages/index.tsx +9 -24
  324. package/docs/en/apis/app/hooks/server/index_.mdx +0 -10
  325. package/docs/en/apis/app/hooks/src/index_.mdx +0 -38
  326. package/docs/en/apis/app/hooks/src/stories.mdx +0 -16
  327. package/docs/en/apis/app/runtime/app/define-config.mdx +0 -67
  328. package/docs/en/apis/app/runtime/core/bootstrap.mdx +0 -74
  329. package/docs/en/apis/app/runtime/core/create-app.mdx +0 -49
  330. package/docs/en/apis/app/runtime/core/use-loader.mdx +0 -89
  331. package/docs/en/apis/app/runtime/core/use-module-apps.mdx +0 -140
  332. package/docs/en/apis/app/runtime/core/use-runtime-context.mdx +0 -116
  333. package/docs/en/apis/app/runtime/model/Provider.mdx +0 -36
  334. package/docs/en/apis/app/runtime/model/auto-actions.mdx +0 -122
  335. package/docs/en/apis/app/runtime/model/connect.mdx +0 -146
  336. package/docs/en/apis/app/runtime/model/create-app.mdx +0 -75
  337. package/docs/en/apis/app/runtime/model/create-store.mdx +0 -61
  338. package/docs/en/apis/app/runtime/model/handle-effect.mdx +0 -107
  339. package/docs/en/apis/app/runtime/model/model_.mdx +0 -198
  340. package/docs/en/apis/app/runtime/model/use-local-model.mdx +0 -29
  341. package/docs/en/apis/app/runtime/model/use-model.mdx +0 -89
  342. package/docs/en/apis/app/runtime/model/use-static-model.mdx +0 -51
  343. package/docs/en/apis/app/runtime/model/use-store.mdx +0 -26
  344. package/docs/en/apis/app/runtime/ssr/pre-render.mdx +0 -96
  345. package/docs/en/apis/app/runtime/web-server/hook.mdx +0 -134
  346. package/docs/en/apis/app/runtime/web-server/middleware.mdx +0 -113
  347. package/docs/en/apis/app/runtime/web-server/unstable_middleware.mdx +0 -167
  348. package/docs/en/components/bff-proxy-path-rewrite.mdx +0 -16
  349. package/docs/en/components/bff-proxy-principle.mdx +0 -1
  350. package/docs/en/components/builder.mdx +0 -3
  351. package/docs/en/components/create-bff-api-app.mdx +0 -25
  352. package/docs/en/components/custom-router-micro-frontend.mdx +0 -40
  353. package/docs/en/components/enable-micro-frontend.mdx +0 -30
  354. package/docs/en/components/enableSwc.mdx +0 -17
  355. package/docs/en/components/global-proxy-config.mdx +0 -85
  356. package/docs/en/components/global-proxy.mdx +0 -29
  357. package/docs/en/components/package-manager.mdx +0 -11
  358. package/docs/en/components/reduck-notify.mdx +0 -27
  359. package/docs/en/components/reduck-tip.mdx +0 -8
  360. package/docs/en/configure/app/auto-load-plugin.mdx +0 -66
  361. package/docs/en/configure/app/deploy/microFrontend.mdx +0 -53
  362. package/docs/en/configure/app/dev/port.mdx +0 -25
  363. package/docs/en/configure/app/dev/proxy.mdx +0 -9
  364. package/docs/en/configure/app/experiments/lazy-compilation.mdx +0 -106
  365. package/docs/en/configure/app/html/disable-html-folder.mdx +0 -46
  366. package/docs/en/configure/app/html/favicon-by-entries.mdx +0 -36
  367. package/docs/en/configure/app/html/inject-by-entries.mdx +0 -36
  368. package/docs/en/configure/app/html/meta-by-entries.mdx +0 -48
  369. package/docs/en/configure/app/html/tags-by-entries.mdx +0 -44
  370. package/docs/en/configure/app/html/template-by-entries.mdx +0 -33
  371. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +0 -35
  372. package/docs/en/configure/app/html/title-by-entries.mdx +0 -37
  373. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +0 -21
  374. package/docs/en/configure/app/output/disable-css-extract.mdx +0 -16
  375. package/docs/en/configure/app/output/disable-filename-hash.mdx +0 -16
  376. package/docs/en/configure/app/output/disable-minimize.mdx +0 -14
  377. package/docs/en/configure/app/output/disable-node-polyfill.mdx +0 -22
  378. package/docs/en/configure/app/output/disable-source-map.mdx +0 -31
  379. package/docs/en/configure/app/output/enable-asset-fallback.mdx +0 -36
  380. package/docs/en/configure/app/output/enable-inline-scripts.mdx +0 -22
  381. package/docs/en/configure/app/output/enable-inline-styles.mdx +0 -22
  382. package/docs/en/configure/app/output/enable-latest-decorators.mdx +0 -14
  383. package/docs/en/configure/app/performance/transform-lodash.mdx +0 -52
  384. package/docs/en/configure/app/runtime/master-app.mdx +0 -36
  385. package/docs/en/configure/app/runtime/state.mdx +0 -52
  386. package/docs/en/configure/app/source/disable-entry-dirs.mdx +0 -38
  387. package/docs/en/configure/app/source/enable-custom-entry.mdx +0 -68
  388. package/docs/en/configure/app/source/module-scopes.mdx +0 -72
  389. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +0 -55
  390. package/docs/en/configure/app/source/resolve-main-fields.mdx +0 -46
  391. package/docs/en/configure/app/tools/esbuild.mdx +0 -44
  392. package/docs/en/configure/app/tools/pug.mdx +0 -54
  393. package/docs/en/configure/app/tools/styled-components.mdx +0 -55
  394. package/docs/en/configure/app/tools/tailwindcss.mdx +0 -98
  395. package/docs/en/configure/app/tools/terser.mdx +0 -58
  396. package/docs/en/configure/app/tools/ts-loader.mdx +0 -76
  397. package/docs/en/configure/app/tools/webpack-chain.mdx +0 -249
  398. package/docs/en/configure/app/tools/webpack.mdx +0 -305
  399. package/docs/en/guides/deprecated.md +0 -17
  400. package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -27
  401. package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +0 -290
  402. package/docs/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -298
  403. package/docs/en/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
  404. package/docs/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -26
  405. package/docs/en/guides/topic-detail/model/_meta.json +0 -14
  406. package/docs/en/guides/topic-detail/model/auto-actions.mdx +0 -85
  407. package/docs/en/guides/topic-detail/model/computed-state.mdx +0 -148
  408. package/docs/en/guides/topic-detail/model/define-model.mdx +0 -62
  409. package/docs/en/guides/topic-detail/model/faq.mdx +0 -35
  410. package/docs/en/guides/topic-detail/model/manage-effects.mdx +0 -247
  411. package/docs/en/guides/topic-detail/model/model-communicate.mdx +0 -217
  412. package/docs/en/guides/topic-detail/model/performance.mdx +0 -167
  413. package/docs/en/guides/topic-detail/model/quick-start.mdx +0 -117
  414. package/docs/en/guides/topic-detail/model/redux-integration.mdx +0 -20
  415. package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +0 -68
  416. package/docs/en/guides/topic-detail/model/use-model.mdx +0 -243
  417. package/docs/en/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
  418. package/docs/en/plugin/official/cli-plugins/plugin-swc.mdx +0 -363
  419. package/docs/en/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
  420. package/docs/en/plugin/official/rsbuild-plugins/_meta.json +0 -1
  421. package/docs/en/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -205
  422. package/docs/en/plugin/official/rsbuild-plugins.mdx +0 -3
  423. package/docs/en/tutorials/first-app/c01-start.mdx +0 -99
  424. package/docs/en/tutorials/first-app/c02-component.mdx +0 -60
  425. package/docs/en/tutorials/first-app/c03-css.mdx +0 -324
  426. package/docs/en/tutorials/first-app/c04-routes.mdx +0 -172
  427. package/docs/en/tutorials/first-app/c05-loader.mdx +0 -87
  428. package/docs/en/tutorials/first-app/c06-model.mdx +0 -278
  429. package/docs/en/tutorials/first-app/c07-container.mdx +0 -281
  430. package/docs/en/tutorials/first-app/c08-entries.mdx +0 -135
  431. package/docs/zh/apis/app/hooks/server/index_.mdx +0 -10
  432. package/docs/zh/apis/app/hooks/src/index_.mdx +0 -39
  433. package/docs/zh/apis/app/hooks/src/stories.mdx +0 -16
  434. package/docs/zh/apis/app/runtime/app/define-config.mdx +0 -67
  435. package/docs/zh/apis/app/runtime/core/bootstrap.mdx +0 -74
  436. package/docs/zh/apis/app/runtime/core/create-app.mdx +0 -35
  437. package/docs/zh/apis/app/runtime/core/use-loader.mdx +0 -89
  438. package/docs/zh/apis/app/runtime/core/use-module-apps.mdx +0 -179
  439. package/docs/zh/apis/app/runtime/core/use-runtime-context.mdx +0 -116
  440. package/docs/zh/apis/app/runtime/model/Provider.mdx +0 -36
  441. package/docs/zh/apis/app/runtime/model/auto-actions.mdx +0 -122
  442. package/docs/zh/apis/app/runtime/model/connect.mdx +0 -143
  443. package/docs/zh/apis/app/runtime/model/create-app.mdx +0 -75
  444. package/docs/zh/apis/app/runtime/model/create-store.mdx +0 -61
  445. package/docs/zh/apis/app/runtime/model/handle-effect.mdx +0 -108
  446. package/docs/zh/apis/app/runtime/model/model_.mdx +0 -201
  447. package/docs/zh/apis/app/runtime/model/use-local-model.mdx +0 -29
  448. package/docs/zh/apis/app/runtime/model/use-model.mdx +0 -89
  449. package/docs/zh/apis/app/runtime/model/use-static-model.mdx +0 -49
  450. package/docs/zh/apis/app/runtime/model/use-store.mdx +0 -26
  451. package/docs/zh/apis/app/runtime/ssr/pre-render.mdx +0 -96
  452. package/docs/zh/apis/app/runtime/web-server/hook.mdx +0 -136
  453. package/docs/zh/apis/app/runtime/web-server/middleware.mdx +0 -114
  454. package/docs/zh/apis/app/runtime/web-server/unstable_middleware.mdx +0 -165
  455. package/docs/zh/components/bff-proxy-path-rewrite.mdx +0 -16
  456. package/docs/zh/components/bff-proxy-principle.mdx +0 -1
  457. package/docs/zh/components/builder.mdx +0 -3
  458. package/docs/zh/components/create-bff-api-app.mdx +0 -25
  459. package/docs/zh/components/custom-router-micro-frontend.mdx +0 -40
  460. package/docs/zh/components/enable-micro-frontend.mdx +0 -30
  461. package/docs/zh/components/enableSwc.mdx +0 -17
  462. package/docs/zh/components/global-proxy-config.mdx +0 -85
  463. package/docs/zh/components/global-proxy.mdx +0 -29
  464. package/docs/zh/components/package-manager.mdx +0 -11
  465. package/docs/zh/components/reduck-notify.mdx +0 -27
  466. package/docs/zh/components/reduck-tip.mdx +0 -8
  467. package/docs/zh/configure/app/auto-load-plugin.mdx +0 -66
  468. package/docs/zh/configure/app/deploy/microFrontend.mdx +0 -55
  469. package/docs/zh/configure/app/dev/port.mdx +0 -25
  470. package/docs/zh/configure/app/dev/proxy.mdx +0 -9
  471. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +0 -105
  472. package/docs/zh/configure/app/html/disable-html-folder.mdx +0 -45
  473. package/docs/zh/configure/app/html/favicon-by-entries.mdx +0 -37
  474. package/docs/zh/configure/app/html/inject-by-entries.mdx +0 -37
  475. package/docs/zh/configure/app/html/meta-by-entries.mdx +0 -48
  476. package/docs/zh/configure/app/html/tags-by-entries.mdx +0 -44
  477. package/docs/zh/configure/app/html/template-by-entries.mdx +0 -33
  478. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +0 -36
  479. package/docs/zh/configure/app/html/title-by-entries.mdx +0 -37
  480. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +0 -21
  481. package/docs/zh/configure/app/output/disable-css-extract.mdx +0 -16
  482. package/docs/zh/configure/app/output/disable-filename-hash.mdx +0 -16
  483. package/docs/zh/configure/app/output/disable-minimize.mdx +0 -14
  484. package/docs/zh/configure/app/output/disable-node-polyfill.mdx +0 -22
  485. package/docs/zh/configure/app/output/disable-source-map.mdx +0 -31
  486. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +0 -36
  487. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +0 -22
  488. package/docs/zh/configure/app/output/enable-inline-styles.mdx +0 -22
  489. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +0 -14
  490. package/docs/zh/configure/app/performance/transform-lodash.mdx +0 -52
  491. package/docs/zh/configure/app/runtime/master-app.mdx +0 -38
  492. package/docs/zh/configure/app/runtime/state.mdx +0 -52
  493. package/docs/zh/configure/app/source/disable-entry-dirs.mdx +0 -38
  494. package/docs/zh/configure/app/source/enable-custom-entry.mdx +0 -67
  495. package/docs/zh/configure/app/source/module-scopes.mdx +0 -72
  496. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +0 -57
  497. package/docs/zh/configure/app/source/resolve-main-fields.mdx +0 -46
  498. package/docs/zh/configure/app/tools/esbuild.mdx +0 -44
  499. package/docs/zh/configure/app/tools/pug.mdx +0 -54
  500. package/docs/zh/configure/app/tools/styled-components.mdx +0 -54
  501. package/docs/zh/configure/app/tools/tailwindcss.mdx +0 -98
  502. package/docs/zh/configure/app/tools/terser.mdx +0 -58
  503. package/docs/zh/configure/app/tools/ts-loader.mdx +0 -76
  504. package/docs/zh/configure/app/tools/webpack-chain.mdx +0 -253
  505. package/docs/zh/configure/app/tools/webpack.mdx +0 -305
  506. package/docs/zh/guides/advanced-features/rspack-start.mdx +0 -154
  507. package/docs/zh/guides/deprecated.md +0 -19
  508. package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -26
  509. package/docs/zh/guides/topic-detail/micro-frontend/c02-development.mdx +0 -332
  510. package/docs/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -296
  511. package/docs/zh/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
  512. package/docs/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -27
  513. package/docs/zh/guides/topic-detail/model/_meta.json +0 -14
  514. package/docs/zh/guides/topic-detail/model/auto-actions.mdx +0 -88
  515. package/docs/zh/guides/topic-detail/model/computed-state.mdx +0 -147
  516. package/docs/zh/guides/topic-detail/model/define-model.mdx +0 -63
  517. package/docs/zh/guides/topic-detail/model/faq.mdx +0 -36
  518. package/docs/zh/guides/topic-detail/model/manage-effects.mdx +0 -256
  519. package/docs/zh/guides/topic-detail/model/model-communicate.mdx +0 -217
  520. package/docs/zh/guides/topic-detail/model/performance.mdx +0 -167
  521. package/docs/zh/guides/topic-detail/model/quick-start.mdx +0 -117
  522. package/docs/zh/guides/topic-detail/model/redux-integration.mdx +0 -20
  523. package/docs/zh/guides/topic-detail/model/typescript-best-practice.mdx +0 -67
  524. package/docs/zh/guides/topic-detail/model/use-model.mdx +0 -248
  525. package/docs/zh/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
  526. package/docs/zh/plugin/official/cli-plugins/plugin-swc.mdx +0 -351
  527. package/docs/zh/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
  528. package/docs/zh/plugin/official/rsbuild-plugins/_meta.json +0 -1
  529. package/docs/zh/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -201
  530. package/docs/zh/plugin/official/rsbuild-plugins.mdx +0 -3
  531. package/docs/zh/tutorials/first-app/c01-start.mdx +0 -99
  532. package/docs/zh/tutorials/first-app/c02-component.mdx +0 -60
  533. package/docs/zh/tutorials/first-app/c03-css.mdx +0 -323
  534. package/docs/zh/tutorials/first-app/c04-routes.mdx +0 -172
  535. package/docs/zh/tutorials/first-app/c05-loader.mdx +0 -89
  536. package/docs/zh/tutorials/first-app/c06-model.mdx +0 -274
  537. package/docs/zh/tutorials/first-app/c07-container.mdx +0 -281
  538. package/docs/zh/tutorials/first-app/c08-entries.mdx +0 -135
  539. /package/docs/en/components/{reduck-migration.mdx → auto-upgrade.mdx} +0 -0
  540. /package/docs/{zh/components/reduck-migration.mdx → en/components/international/platform-support.mdx} +0 -0
@@ -2,88 +2,14 @@
2
2
 
3
3
  [Tailwind CSS](https://tailwindcss.com/) 是一个以 Utility Class 为基础的 CSS 框架和设计系统,可以快速地为组件添加常用样式,同时支持主题样式的灵活扩展。
4
4
 
5
- 在 Modern.js 中使用 [Tailwind CSS](https://tailwindcss.com/),你只需要按照以下步骤操作:
5
+ ## 在 Modern.js 中使用 Tailwind CSS
6
6
 
7
- 1. 在项目根目录下执行 `pnpm run new`,按照如下进行选择:
7
+ 在 Modern.js 中使用 [Tailwind CSS](https://tailwindcss.com/),你只需要按照 Rsbuild 操作步骤进行配置,Rsbuild 支持 Tailwind CSS v3 和 v4 版本:
8
8
 
9
- ```text
10
- ? 请选择你想要的操作 启用可选功能
11
- ? 请选择功能名称 启用 「Tailwind CSS」 支持
12
- ```
9
+ - [Tailwind CSS v3](https://rsbuild.rs/zh/guide/styling/tailwindcss-v3#tailwind-css-v3)
10
+ - [Tailwind CSS v4](https://rsbuild.rs/zh/guide/styling/tailwindcss)
13
11
 
14
- 成功开启后,你会看到 `package.json` 中新增了 `tailwindcss` 和 `@modern-js/plugin-tailwindcss` 依赖。
15
-
16
- 2. 在 `modern.config.ts` 中注册 Tailwind 插件:
17
-
18
- ```ts title="modern.config.ts"
19
- import { tailwindcssPlugin } from '@modern-js/plugin-tailwindcss';
20
-
21
- export default defineConfig({
22
- plugins: [..., tailwindcssPlugin()],
23
- });
24
- ```
25
-
26
- 3. 创建 `index.css` 文件,添加以下代码:
27
-
28
- ```css title="index.css"
29
- @tailwind base;
30
- @tailwind components;
31
- @tailwind utilities;
32
- ```
33
-
34
- :::info
35
- 根据需求不同,你可以选择性地导入 Tailwind CSS 提供的 CSS 样式。请参考 [`@tailwind` 文档](https://tailwindcss.com/docs/functions-and-directives#tailwind) 来了解 `@tailwind` 指令的详细用法。
36
- :::
37
-
38
- 4. 引用 `index.css` 文件,比如在入口的根组件 `src/App.jsx` 添加如下代码:
39
-
40
- ```js
41
- import './index.css';
42
- ```
43
-
44
- 5. 然后即可在各个组件中使用 Tailwind CSS 提供的 Utility Class 了:
45
-
46
- ```tsx
47
- const Hello = () => (
48
- <div className="h-12 w-48">
49
- <p className="text-xl font-medium text-black">hello world</p>
50
- </div>
51
- );
52
- ```
53
-
54
- ### 配置 Tailwind CSS
55
-
56
- 在 Modern.js 中,你有两种方式来配置 Tailwind CSS:
57
-
58
- 1. 使用 `tailwind.config.{ts,js}` 文件,该用法与 Tailwind CSS 的官方用法一致,请参考 ["Tailwind CSS - Configuration"](https://tailwindcss.com/docs/configuration) 来了解更多用法。
59
-
60
- ```ts title="tailwind.config.ts"
61
- import type { Config } from 'tailwindcss';
62
-
63
- export default {
64
- content: ['./src/**/*.{js,jsx,ts,tsx}'],
65
- } as Config;
66
- ```
67
-
68
- :::tip
69
- 请升级 Modern.js 到 >= MAJOR_VERSION.33.0 版本,以支持自动读取 `tailwind.config.{ts,js}` 文件。
70
- :::
71
-
72
- 2. 使用 [tools.tailwindcss](/configure/app/tools/tailwindcss.html) 配置项,这是旧版本的用法,我们更推荐使用 `tailwind.config.{ts,js}` 文件进行配置。
73
-
74
- ```ts title="modern.config.ts"
75
- export default {
76
- tools: {
77
- tailwindcss: {
78
- content: ['./src/**/*.{js,jsx,ts,tsx}'],
79
- },
80
- },
81
- };
82
- ```
83
-
84
- 如果你同时使用了 `tailwind.config.{ts,js}` 文件和 `tools.tailwindcss` 选项,那么 `tools.tailwindcss` 定义的配置会优先生效,并覆盖 `tailwind.config.{ts,js}` 中定义的内容。
85
-
86
- ### Tailwind CSS 自动补全
12
+ ## Tailwind CSS 自动补全
87
13
 
88
14
  Tailwind CSS 官方提供了 [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) 插件,用于在 VS Code 中自动补全 Tailwind CSS 的 class names、CSS functions 和 directives。
89
15
 
@@ -92,20 +18,10 @@ Tailwind CSS 官方提供了 [Tailwind CSS IntelliSense](https://github.com/tail
92
18
  1. 在 VS Code 中安装 [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) 插件。
93
19
  2. 如果项目的根目录没有 `tailwind.config.{ts,js}` 文件,那么你需要创建该文件,并写入当前项目的 Tailwind CSS 配置,否则 IDE 插件将无法正确生效。
94
20
 
95
- ## Tailwind CSS 版本
96
-
97
- Modern.js 同时支持 Tailwind CSS v2 和 v3 版本,框架会识别项目 `package.json` 中的 `tailwindcss` 依赖版本,并启用相应的配置。默认情况下,我们会为你安装 Tailwind CSS v3 版本。
98
-
99
- 如果你的项目仍在使用 Tailwind CSS v2,我们推荐你升级到 v3 以支持 JIT 等能力。关于 Tailwind CSS v2 与 v3 版本之间的差异,请参考以下文章:
100
-
101
- - [Tailwind CSS v3.0](https://tailwindcss.com/blog/tailwindcss-v3)
102
- - [Upgrade Guide](https://tailwindcss.com/docs/upgrade-guide)
103
-
104
21
  ## 浏览器兼容性
105
22
 
106
- Tailwind CSS v2 和 v3 均不支持 IE 11 浏览器,相关背景请参考:
23
+ Tailwind CSS v3 不支持 IE 11 浏览器,相关背景请参考:
107
24
 
108
25
  - [Tailwind CSS v3 - Browser Support](https://tailwindcss.com/docs/browser-support)。
109
- - [Tailwind CSS v2 - Browser Support](https://v2.tailwindcss.com/docs/browser-support)
110
26
 
111
27
  如果你在 IE 11 浏览器上使用 Tailwind CSS,可能会出现部分样式不可用的现象,请谨慎使用。
@@ -27,7 +27,7 @@ import { fetchUserData } from './api';
27
27
  const getUser = cache(fetchUserData);
28
28
 
29
29
  const loader = async () => {
30
- const user = await getUser(user); // 函数入参发生变化时,函数会重新执行
30
+ const user = await getUser('123'); // 函数入参发生变化时,函数会重新执行
31
31
  return {
32
32
  user,
33
33
  };
@@ -67,7 +67,7 @@ interface CacheOptions {
67
67
  ## 使用范围
68
68
 
69
69
  与 react 的 [cache](https://react.dev/reference/react/cache) 函数只能在 server component 组件中使用不同,
70
- EdenX 提供的 `cache` 函数可以在任意的前端或服务端的代码中使用。
70
+ Modern.js 提供的 `cache` 函数可以在任意的前端或服务端的代码中使用。
71
71
 
72
72
  ## 详细用法
73
73
 
@@ -117,8 +117,11 @@ const getDashboardStats = cache(
117
117
 
118
118
  `revalidate` 参数用于设置缓存过期后,重新验证缓存的时间窗口,可以和 `maxAge` 参数一起使用,类似与 HTTP Cache-Control 的 stale-while-revalidate 模式。
119
119
 
120
+ 如以下示例,缓存的行为会根据时间分为三个阶段:
120
121
 
121
- 如以下示例,在缓存未过期的 2分钟内,如果调用 `getDashboardStats` 函数,会返回缓存的数据,如果缓存过期,2分到3分钟内,收到的请求会先返回旧数据,然后后台会重新请求数据,并更新缓存。
122
+ 1. **0 到 2 分钟(`maxAge` 内)**:缓存新鲜,直接返回缓存数据,不会重新请求
123
+ 2. **2 到 3 分钟(`maxAge` 到 `maxAge + revalidate` 之间)**:缓存过期但在重新验证窗口内,会立即返回旧数据,同时在后台重新请求数据并更新缓存
124
+ 3. **超过 3 分钟(超过 `maxAge + revalidate`)**:缓存完全过期,会重新执行函数获取新数据
122
125
 
123
126
  ```ts
124
127
  import { cache, CacheTime } from '@modern-js/runtime/cache';
@@ -159,7 +162,7 @@ const getComplexStatistics = cache(
159
162
  }
160
163
  );
161
164
 
162
- await revalidateTag('dashboard-stats'); // 会使 getDashboardStats 函数和 getComplexStatistics 函数的缓存都失效
165
+ await revalidateTag('dashboard'); // 会使 getDashboardStats 函数和 getComplexStatistics 函数的缓存都失效
163
166
  ```
164
167
 
165
168
  #### `getKey` 参数
@@ -451,7 +454,7 @@ class RedisContainer implements Container {
451
454
  }
452
455
 
453
456
  async get(key: string): Promise<string | null> {
454
- const value = await this.redis.get(key);
457
+ const value = await this.client.get(key);
455
458
  return value ? JSON.parse(value) : null;
456
459
  }
457
460
 
@@ -13,7 +13,7 @@ Modern.js 中提供了开箱即用的数据获取能力,开发者可以通过
13
13
  Modern.js v1 项目通过 `useLoader` 获取数据,这已经不是我们推荐的用法,建议迁移到 Data Loader。
14
14
  :::
15
15
 
16
- Modern.js 推荐使用[约定式路由](/guides/basic-features/routes)做路由的管理,每个路由组件(`layout.ts`,`page.ts` 或 `$.tsx`)都可以有一个同名的 `.data` 文件。这些文件可以导出一个 `loader` 函数,我们称为 Data Loader,它会在对应的路由组件渲染之前执行,为组件提供数据。如下面示例:
16
+ Modern.js 推荐使用[约定式路由](/guides/basic-features/routes/routes)做路由的管理,每个路由组件(`layout.ts`,`page.ts` 或 `$.tsx`)都可以有一个同名的 `.data` 文件。这些文件可以导出一个 `loader` 函数,我们称为 Data Loader,它会在对应的路由组件渲染之前执行,为组件提供数据。如下面示例:
17
17
 
18
18
  ```bash
19
19
  .
@@ -76,7 +76,7 @@ export default function UserPage() {
76
76
  在以后的版本中,Modern.js 可能会支持在 CSR 环境下,`loader` 函数也在服务端运行,以提高性能和安全性,所以这里建议尽可能地保证 `loader` 的纯粹,只做数据获取的场景。
77
77
  :::
78
78
 
79
- 当在浏览器端导航时,基于[约定式路由](/guides/basic-features/routes),Modern.js 能够支持所有的 `loader` 函数并行执行(请求)。即当访问 `/user/profile` 时,`/user` 和 `/user/profile` 下的 `loader` 函数都会并行执行(请求),这种方式解决了部分请求、渲染瀑布流的问题,较大的提升了页面性能。
79
+ 当在浏览器端导航时,基于[约定式路由](/guides/basic-features/routes/routes),Modern.js 能够支持所有的 `loader` 函数并行执行(请求)。即当访问 `/user/profile` 时,`/user` 和 `/user/profile` 下的 `loader` 函数都会并行执行(请求),这种方式解决了部分请求、渲染瀑布流的问题,较大的提升了页面性能。
80
80
 
81
81
  ## `loader` 函数
82
82
 
@@ -84,7 +84,7 @@ export default function UserPage() {
84
84
 
85
85
  ### params
86
86
 
87
- `params` 是当路由为[动态路由](/guides/basic-features/routes#动态路由)时的动态路由片段,会作为参数传入 `loader` 函数:
87
+ `params` 是当路由为[动态路由](/guides/basic-features/routes/routes#动态路由)时的动态路由片段,会作为参数传入 `loader` 函数:
88
88
 
89
89
  ```tsx title="routes/user/[id]/page.data.ts"
90
90
  import { LoaderFunctionArgs } from '@modern-js/runtime/router';
@@ -160,8 +160,9 @@ SSR 应用的 `loader` 函数只在服务端执行可以带来以下好处:
160
160
  ```tsx
161
161
  export async function loader() {
162
162
  const res = await fetch('URL_ADDRESS');
163
+ const data = await res.json();
163
164
  return {
164
- message: res.message
165
+ message: data.message
165
166
  }
166
167
  }
167
168
  ```
@@ -170,7 +171,7 @@ export async function loader() {
170
171
 
171
172
  ### 基本用法
172
173
 
173
- 在 `loader` 函数中,可以通过 `throw error` 或者 `throw response` 的方式处理错误,当 `loader` 函数中有错误被抛出时,Modern.js 会停止执行当前 `loader` 中的代码,并将前端 UI 切换到定义的 [`ErrorBoundary`](/guides/basic-features/routes#错误处理) 组件:
174
+ 在 `loader` 函数中,可以通过 `throw error` 或者 `throw response` 的方式处理错误,当 `loader` 函数中有错误被抛出时,Modern.js 会停止执行当前 `loader` 中的代码,并将前端 UI 切换到定义的 [`ErrorBoundary`](/guides/basic-features/routes/routes#错误处理) 组件:
174
175
 
175
176
  ```tsx
176
177
  // routes/user/profile/page.data.ts
@@ -14,7 +14,7 @@ sidebar_position: 4
14
14
 
15
15
  ## 什么是 Data Action
16
16
 
17
- Modern.js 推荐使用[约定式路由](/guides/basic-features/routes)做路由的管理,每个路由组件(`layout.ts`,`page.ts` 或 `$.tsx`)都可以有一个同名的 `.data` 文件。这些文件可以导出一个 `action` 函数,我们称为 Data Action,开发者可以在合适的时机调用它:
17
+ Modern.js 推荐使用[约定式路由](/guides/basic-features/routes/routes)做路由的管理,每个路由组件(`layout.ts`,`page.ts` 或 `$.tsx`)都可以有一个同名的 `.data` 文件。这些文件可以导出一个 `action` 函数,我们称为 Data Action,开发者可以在合适的时机调用它:
18
18
 
19
19
  ```bash
20
20
  .
@@ -29,7 +29,7 @@ Modern.js 推荐使用[约定式路由](/guides/basic-features/routes)做路由
29
29
  ```ts title="routes/user/layout.data.ts"
30
30
  import type { ActionFunction } from '@modern-js/runtime/router';
31
31
 
32
- export const action: ActionFunction = ({ request }) => {
32
+ export const action: ActionFunction = async ({ request }) => {
33
33
  const newUser = await request.json();
34
34
  const name = newUser.name;
35
35
  return updateUserProfile(name);
@@ -82,7 +82,7 @@ export default () => {
82
82
 
83
83
  ### params
84
84
 
85
- `params` 是当路由为[动态路由](/guides/basic-features/routes#动态路由)时动态路由片段,会作为参数传入 `action` 函数:
85
+ `params` 是当路由为[动态路由](/guides/basic-features/routes/routes#动态路由)时动态路由片段,会作为参数传入 `action` 函数:
86
86
 
87
87
  ```tsx title="routes/user/[id]/page.data.ts"
88
88
  import { ActionFunctionArgs } from '@modern-js/runtime/router';
@@ -97,7 +97,7 @@ export const action = async ({ params }: ActionFunctionArgs) => {
97
97
 
98
98
  ### request
99
99
 
100
- `request` 是一个 [Fetch Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) 实例。通过 `request`,可以在 action 函数中获取到浏览器端提交的数据,如 `request.json()`,`request.formData()`,`request.json()` 等。具体使用哪个 API,请参考[数据类型](#数据类型)。
100
+ `request` 是一个 [Fetch Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) 实例。通过 `request`,可以在 action 函数中获取到浏览器端提交的数据,如 `request.json()`,`request.formData()`,`request.text()` 等。具体使用哪个 API,请参考[数据类型](#数据类型)。
101
101
 
102
102
  ```tsx title="routes/user/[id]/page.data.ts"
103
103
  import { ActionFunctionArgs } from '@modern-js/runtime/router';
@@ -70,7 +70,7 @@ module.exports = {
70
70
 
71
71
  ```js
72
72
  module.exports = {
73
- 'api/getInfo': (req, res) => {
73
+ '/api/getInfo': (req, res) => {
74
74
  setTimeout(() => {
75
75
  res.end('delay 2000ms');
76
76
  }, 2000);
@@ -83,6 +83,9 @@ module.exports = {
83
83
  `config/mock/index.ts` 下还可以导出 `config` 对象,更精细的控制 Mock 服务。
84
84
 
85
85
  ```ts
86
+ import type { IncomingMessage } from 'node:http';
87
+ import type { ServerResponse } from 'node:http';
88
+
86
89
  type MockConfig = {
87
90
  enable: ((req: IncomingMessage, res: ServerResponse) => boolean) | boolean;
88
91
  };
@@ -4,8 +4,6 @@ sidebar_position: 6
4
4
 
5
5
  # 网络代理
6
6
 
7
- ## 本地代理
8
-
9
7
  Modern.js 在 [`tools.devServer`](/configure/app/tools/dev-server) 中提供了配置开发环境代理的方式。例如,将本地开发接口,代理到线上某个地址:
10
8
 
11
9
  ```ts title="modern.config.ts"
@@ -31,9 +29,3 @@ export default defineConfig({
31
29
  配置格式可参考:[http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware)。
32
30
 
33
31
  :::
34
-
35
- ## 全局代理
36
-
37
- import GlobalProxy from "@site-docs/components/global-proxy"
38
-
39
- <GlobalProxy />
@@ -26,14 +26,14 @@ import { RsdoctorRspackPlugin } from '@rsdoctor/rspack-plugin';
26
26
  export default {
27
27
  // ...
28
28
  tools: {
29
- rspack(config, { appendPlugins }) {
29
+ bundlerChain(chain) {
30
30
  // 仅在 RSDOCTOR 为 true 时注册插件,因为插件会增加构建耗时
31
31
  if (process.env.RSDOCTOR) {
32
- appendPlugins(
33
- new RsdoctorRspackPlugin({
32
+ chain.plugin('rsdoctor').use(RsdoctorRspackPlugin, [
33
+ {
34
34
  // 插件选项
35
- }),
36
- );
35
+ },
36
+ ]);
37
37
  }
38
38
  },
39
39
  },
@@ -46,7 +46,7 @@ export default {
46
46
 
47
47
  ## 执行构建
48
48
 
49
- 在你可以在项目内执行 build 命令,在完成构建后,Rsdoctor 会自动打开本次构建的分析页面。
49
+ 你可以在项目内执行 build 命令,在完成构建后,Rsdoctor 会自动打开本次构建的分析页面。
50
50
 
51
51
  ```bash
52
52
  RSDOCTOR=true npm run build
@@ -26,7 +26,6 @@ MODERNJS_DEPLOY=netlify npx modern deploy
26
26
  在 Modern.js 官方支持的部署平台中部署时,无需指定环境变量。
27
27
  :::
28
28
 
29
-
30
29
  ## ModernJS 内置 Node.js 服务器
31
30
 
32
31
  ### 单仓库项目
@@ -54,8 +53,8 @@ You can preview this build by `node .output/index`
54
53
  ```
55
54
  PORT=3000 node .output/index
56
55
  ```
57
- :::
58
56
 
57
+ :::
59
58
 
60
59
  ### Monorepo
61
60
 
@@ -67,7 +66,7 @@ PORT=3000 node .output/index
67
66
  {
68
67
  "scripts": {
69
68
  "build:packages": "pnpm --filter 'app^...' run build",
70
- "deploy": "pnpm run build:packages && modern deploy",
69
+ "deploy": "pnpm run build:packages && modern deploy"
71
70
  }
72
71
  }
73
72
  ```
@@ -78,7 +77,7 @@ PORT=3000 node .output/index
78
77
  {
79
78
  "scripts": {
80
79
  "build:packages": "rush rebuild --to-except app",
81
- "deploy": "rushx build:packages && modern deploy",
80
+ "deploy": "rushx build:packages && modern deploy"
82
81
  }
83
82
  }
84
83
  ```
@@ -102,6 +101,7 @@ Netlify 是一个流行的 Web 开发平台,专为构建、发布和维护现
102
101
  ```
103
102
 
104
103
  在 `netlify.toml` 中添加以下内容:
104
+
105
105
  ```toml
106
106
  [build]
107
107
  publish = "dist"
@@ -131,14 +131,12 @@ Netlify 是一个流行的 Web 开发平台,专为构建、发布和维护现
131
131
  ```
132
132
 
133
133
  :::info
134
+
134
135
  1. 目前 Modern.js 还不支持在 Netlify Edge Functions 进行部署,我们将在后续的版本中支持。
135
136
  2. 你可参考部署[项目示例](https://github.com/web-infra-dev/modern-js-examples/tree/main/examples/modern-js-deploy-ssr)。
136
137
 
137
138
  :::
138
139
 
139
-
140
-
141
-
142
140
  ### Monorepo 项目
143
141
 
144
142
  :::info
@@ -169,7 +167,7 @@ Netlify 是一个流行的 Web 开发平台,专为构建、发布和维护现
169
167
  {
170
168
  "scripts": {
171
169
  "build:packages": "pnpm --filter 'app^...' run build",
172
- "deploy": "pnpm run build:packages && modern deploy",
170
+ "deploy": "pnpm run build:packages && modern deploy"
173
171
  }
174
172
  }
175
173
  ```
@@ -231,7 +229,6 @@ Vercel 是一个面向现代 Web 应用的部署平台,它提供了丰富的
231
229
  1. 当前,Modern.js 还不支持在 Vercel 平台上部署 BFF 项目,我们将在后续的版本中支持。
232
230
  2. 函数运行的 node.js 版本由项目在 Vercel 平台配置决定。
233
231
 
234
-
235
232
  :::info
236
233
  你可参考部署[项目示例](https://github.com/web-infra-dev/modern-js-examples/tree/main/examples/modern-js-deploy-ssr)。
237
234
 
@@ -261,10 +258,11 @@ Vercel 是一个面向现代 Web 应用的部署平台,它提供了丰富的
261
258
 
262
259
  <img src="https://sf16-sg.tiktokcdn.com/obj/eden-sg/lmeh7nuptpfnuhd/vercel-root-directory.png" />
263
260
 
264
- 将 Node.js 运行时设置为 `18.x`:
261
+ 将 Node.js 运行时设置为 `20.x`:
262
+
265
263
  ```json title="package.json"
266
264
  "engines": {
267
- "node": "18.x"
265
+ "node": "20.x"
268
266
  },
269
267
  ```
270
268
 
@@ -274,12 +272,13 @@ Vercel 是一个面向现代 Web 应用的部署平台,它提供了丰富的
274
272
  {
275
273
  "scripts": {
276
274
  "build:packages": "pnpm --filter 'app^...' run build",
277
- "deploy": "pnpm run build:packages && modern deploy",
275
+ "deploy": "pnpm run build:packages && modern deploy"
278
276
  }
279
277
  }
280
278
  ```
281
279
 
282
280
  在 `packages/app/vercel.json` 文件中添加以下内容:
281
+
283
282
  ```json title="vercel.json"
284
283
  {
285
284
  "buildCommand": "npm run deploy",
@@ -291,23 +290,25 @@ Vercel 是一个面向现代 Web 应用的部署平台,它提供了丰富的
291
290
 
292
291
  ## Github Pages
293
292
 
294
- 如果你要为一个仓库常见 Github 页面,并且你没有自定义域名,则该页面的 URL 将会是以下格式:`http://<username>.github.io/<repository-name>`,所以需要在 `modern.config.ts` 中添加
293
+ 如果你要为一个仓库创建 Github 页面,并且你没有自定义域名,则该页面的 URL 将会是以下格式:`http://<username>.github.io/<repository-name>`,所以需要在 `modern.config.ts` 中添加
295
294
  以下配置:
295
+
296
296
  ```ts
297
297
  import { defineConfig } from '@modern-js/app-tools';
298
298
 
299
299
  export default defineConfig({
300
300
  //...
301
- server:{
302
- baseUrl: "/<repository-name>"
301
+ server: {
302
+ baseUrl: '/<repository-name>',
303
303
  },
304
304
  output: {
305
- assetPrefix: "/<repository-name>",
306
- }
305
+ assetPrefix: '/<repository-name>',
306
+ },
307
307
  });
308
308
  ```
309
309
 
310
310
  Github Pages 支持两种部署方式,通过分支部署或通过 Github Actions 部署,如果通过分支部署,可以使用以下步骤:
311
+
311
312
  1. 在 github 仓库中,选择 `Settings > Pages > Source > Deploy from a branch`。
312
313
  2. 安装 `gh-pages` 依赖作为开发依赖。
313
314
  3. 在 package.json 的 `scripts` 中添加 `"deploy:gh-pages": "MODERNJS_DEPLOY=ghPages modern deploy && gh-pages -d .output"`。
@@ -322,7 +323,6 @@ Github Pages 支持两种部署方式,通过分支部署或通过 Github Actio
322
323
 
323
324
  如果通过 Github Actions 部署,可以选择 Settings > Pages > Source > GitHub Actions,并在项目中添加 workflow 文件,可参考[示例](https://github.com/web-infra-dev/modern-js-examples/tree/main/examples/modern-js-deploy-csr)。
324
325
 
325
-
326
326
  ## 自建 Node.js 服务器
327
327
 
328
328
  通常情况下,我们推荐使用 Modern.js 内置的 Node.js 服务器来部署应用,它支持托管纯前端项目或者全栈项目,并且保证在开发和生产环境下的表现一致。
@@ -367,10 +367,14 @@ const app = new Koa();
367
367
  app.use(async (ctx, next) => {
368
368
  if (ctx.path.startsWith('/static')) {
369
369
  ctx.type = mime.lookup(ctx.path);
370
- ctx.body = fs.createReadStream(path.resolve(__dirname, `.output${ctx.path}`));
370
+ ctx.body = fs.createReadStream(
371
+ path.resolve(__dirname, `.output${ctx.path}`),
372
+ );
371
373
  } else if (ctx.path === '/') {
372
374
  ctx.type = 'html';
373
- ctx.body = fs.createReadStream(path.resolve(__dirname, '.output/html/main/index.html'));
375
+ ctx.body = fs.createReadStream(
376
+ path.resolve(__dirname, '.output/html/main/index.html'),
377
+ );
374
378
  }
375
379
  });
376
380
  app.listen(3000);
@@ -142,7 +142,7 @@ export default defineConfig({
142
142
  source: {
143
143
  globalVars: {
144
144
  'process.env.VERSION': process.env.VERSION,
145
- }.
145
+ },
146
146
  },
147
147
  });
148
148
  ```
@@ -35,7 +35,7 @@ Modern.js 约定,在 `src/` 或入口目录下,可以创建 `Document.[jt]sx
35
35
 
36
36
  ### HTML 组件
37
37
 
38
- Modern.js 提供了一些列渲染页面的组件,用来帮助开发者生成模板,可以从 `@modern-js/runtime/document` 中使用这些组件:
38
+ Modern.js 提供了一系列渲染页面的组件,用来帮助开发者生成模板,可以从 `@modern-js/runtime/document` 中使用这些组件:
39
39
 
40
40
  ```tsx
41
41
  import { Html, Body, Root, Head, Scripts } from '@modern-js/runtime/document';
@@ -154,7 +154,7 @@ export default function Document(): React.ReactElement {
154
154
  你可以使用 `<Scripts>` 组件,将构建生成的 `<script>` 标签插入到 `<body>` 标签内:
155
155
 
156
156
  ```tsx
157
- import React, { useContext } from 'react';
157
+ import React from 'react';
158
158
  import { Html, Root, Head, Body, Scripts } from '@modern-js/runtime/document';
159
159
 
160
160
  export default function Document(): React.ReactElement {
@@ -47,8 +47,8 @@ Modern.js 提供了多个配置项来修改产物目录和产物名称,你可
47
47
  - 通过 [output.filename](/configure/app/output/filename) 来修改产物的文件名。
48
48
  - 通过 [output.distPath](/configure/app/output/dist-path) 来修改产物的输出路径。
49
49
  - 通过 [output.legalComments](/configure/app/output/legal-comments) 来修改 License 文件的生成方式。
50
- - 通过 [output.disableSourceMap](/configure/app/output/disable-source-map) 来移除 Source Map 文件。
51
- - 通过 [html.disableHtmlFolder](/configure/app/html/disable-html-folder) 移除 HTML 产物对应的文件夹。
50
+ - 通过 [output.sourceMap](/configure/app/output/source-map) 来移除 Source Map 文件。
51
+ - 通过 [html.outputStructure](/configure/app/html/output-structure) 移除 HTML 产物对应的文件夹。
52
52
 
53
53
  ## 静态资源
54
54
 
@@ -112,7 +112,7 @@ export default {
112
112
  },
113
113
  },
114
114
  html: {
115
- disableHtmlFolder: true,
115
+ outputStructure: 'flat',
116
116
  },
117
117
  };
118
118
  ```
@@ -1 +1 @@
1
- ["ssr", "streaming-ssr", "ssr-cache", "ssg", "before-render"]
1
+ ["overview", "ssr", "streaming-ssr", "ssr-cache", "ssg", "rsc", "before-render"]
@@ -1,16 +1,16 @@
1
- # 渲染预处理 (Render Preprocessing)
1
+ # 渲染预处理
2
2
 
3
3
  在某些场景下,应用需要在渲染前执行预处理操作。Modern.js 推荐使用 **[Runtime 插件 (Runtime Plugin)](/plugin/introduction.html#runtime-插件)** 来实现这类逻辑。
4
4
 
5
5
  ## 定义 Runtime 插件
6
6
 
7
7
  ```ts
8
- import type { RuntimePluginFuture } from '@modern-js/runtime';
8
+ import type { RuntimePlugin } from '@modern-js/runtime';
9
9
 
10
- const myRuntimePlugin = (): RuntimePluginFuture => ({
10
+ const myRuntimePlugin = (): RuntimePlugin => ({
11
11
  name: 'my-runtime-plugin',
12
- setup: (api) => {
13
- api.onBeforeRender((context) => {
12
+ setup: api => {
13
+ api.onBeforeRender(context => {
14
14
  // 在渲染前执行的逻辑
15
15
  console.log('Before rendering:', context);
16
16
  });
@@ -35,23 +35,24 @@ export default defineRuntimeConfig({
35
35
 
36
36
  ## 应用场景 -- 全局数据注入
37
37
 
38
- 通过 `onBeforeRender` 钩子的 `context` 参数,可以向应用注入全局数据。应用的组件可以通过 `useRuntimeContext` Hook 访问这些数据。
38
+ 通过 `onBeforeRender` 钩子的 `context` 参数,可以向应用注入全局数据。应用的组件可以通过 `use(RuntimeContext)` Hook 访问这些数据。
39
39
 
40
40
  :::info
41
41
 
42
42
  此功能在以下场景中特别有用:
43
- * 需要页面级前置数据的应用
44
- * 自定义数据注入流程
45
- * 框架迁移场景(例如从 Next.js 迁移)
43
+
44
+ - 需要页面级前置数据的应用
45
+ - 自定义数据注入流程
46
+ - 框架迁移场景(例如从 Next.js 迁移)
46
47
 
47
48
  :::
48
49
 
49
50
  **定义数据注入插件**
50
51
 
51
52
  ```ts
52
- import type { RuntimePluginFuture } from '@modern-js/runtime';
53
+ import type { RuntimePlugin } from '@modern-js/runtime';
53
54
 
54
- const dataInjectionPlugin = (): RuntimePluginFuture => ({
55
+ const dataInjectionPlugin = (): RuntimePlugin => ({
55
56
  name: 'data-injection-plugin',
56
57
  setup: api => {
57
58
  api.onBeforeRender(context => {
@@ -67,10 +68,11 @@ export default dataInjectionPlugin;
67
68
  **在组件中使用注入的数据**
68
69
 
69
70
  ```tsx
70
- import { useRuntimeContext } from '@modern-js/runtime';
71
+ import { use } from 'react';
72
+ import { RuntimeContext } from '@modern-js/runtime';
71
73
 
72
74
  export default function MyComponent() {
73
- const context = useRuntimeContext();
75
+ const context = use(RuntimeContext);
74
76
  const { message } = context;
75
77
 
76
78
  return <div>{message}</div>;
@@ -82,9 +84,9 @@ export default function MyComponent() {
82
84
  在 SSR 场景下,浏览器端可以获取服务端渲染期间通过 `onBeforeRender` 注入的数据。开发者可以根据需求决定是否在浏览器端重新获取数据来覆盖服务端数据。
83
85
 
84
86
  ```ts
85
- import type { RuntimePluginFuture } from '@modern-js/runtime';
87
+ import type { RuntimePlugin } from '@modern-js/runtime';
86
88
 
87
- const dataInjectionPlugin = (): RuntimePluginFuture => ({
89
+ const dataInjectionPlugin = (): RuntimePlugin => ({
88
90
  name: 'data-injection-plugin',
89
91
  setup: api => {
90
92
  api.onBeforeRender(context => {
@@ -104,12 +106,3 @@ const dataInjectionPlugin = (): RuntimePluginFuture => ({
104
106
 
105
107
  export default dataInjectionPlugin;
106
108
  ```
107
-
108
- ## 兼容性说明
109
-
110
- 在 Modern.js 的早期版本中,支持通过 `routes/layout.tsx` 中的 `init` 钩子以及 `App.init` 方法来添加渲染预处理逻辑。这些方式目前仍然**被支持**,但我们**强烈推荐**使用 Runtime 插件实现。
111
-
112
- :::warning
113
-
114
- 未来版本中,`routes/layout.tsx` 的 `init` 钩子和 `App.init` 方法将逐步**废弃**。建议尽早迁移到 Runtime 插件方案。
115
- :::