modern.js icon indicating copy to clipboard operation
modern.js copied to clipboard

[Bug]: runtime-router 的文档有缺失

Open SoonIter opened this issue 2 years ago • 2 comments

版本信息

System:
    OS: macOS 13.0.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 1.65 GB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Browsers:
    Chrome: 120.0.6099.129
    Chrome Canary: 122.0.6214.0
    Safari: 16.1
  npmPackages:
    @modern-js/app-tools: 2.43.0 => 2.43.0 
    @modern-js/builder-rspack-provider: 2.43.0 => 2.43.0 
    @modern-js/eslint-config: 2.43.0 => 2.43.0 
    @modern-js/plugin-garfish: 2.43.0 => 2.43.0 
    @modern-js/runtime: 2.43.0 => 2.43.0 
    @modern-js/tsconfig: 2.43.0 => 2.43.0

问题详情

https://modernjs.dev/configure/app/runtime/router.html#runtimerouter

image

缺少相关配置

另外,我对路由方案的文档有一点小小的困惑

我的理解如下,有错误可以指出,modern-js 目前的路由方案分为 约定式路由、自控式路由、其他(自定义)

  • 约定式路由

前提需开启 router: true,约定 src/routes 文件路由,可使用 @modern-js/runtime/router,自动注入 hoc

  • 自控式路由

前提需开启 router: true,可使用 @modern-js/runtime/router,但是要自己在 App 根部包裹 BrowserRouterRouteProvider

  • 其他(自定义)

设置 router: false@modern-js/runtime/router 不会被打包进产物,自己安装 react-router-dom,自己注册 BrowserRouterRouteProvider

所以我理解这一页的 basename 和 supportHistoryV5 是约定式路由的配置,也只有在约定式路由配置才生效,可以特殊标注一下

文档在路由方案-自控式路由的介绍稍微有点粗略,比较容易造成误解,甚至造成用户 react-router-dom@modern-js/runtime/router 多实例踩坑,需要手动 alias

感觉文档这一方面可以做的更好,让用户有更多信息可供参考对这几种模式进行技术选型

复现链接

https://modernjs.dev/configure/app/runtime/router.html#runtimerouter

复现步骤

No need

SoonIter avatar Dec 30 '23 17:12 SoonIter

PR welcome😄

chenjiahan avatar Dec 30 '23 18:12 chenjiahan

(其实后面的 basename 和 supportHistoryV5 就是前面说的具体配置

xc2 avatar Jan 05 '24 17:01 xc2